diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index bc42af1..92308f1 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -35,7 +35,7 @@ jobs:
run: |
# The grader's exit status, not tail's, decides the step.
set -o pipefail
- for suite in operations vectors; do
+ for suite in operations management vectors; do
./target/release/object-tests grade "cases/$suite.json" \
--record-unsupported "$RUNNER_TEMP/unsupported.json" \
-- adapters/borink/target/release/borink-adapter | tail -n 1
diff --git a/Cargo.toml b/Cargo.toml
index 85f78c6..73863ef 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.2.0"
edition = "2024"
license = "MIT"
description = "A data-driven object storage conformance grader"
-include = ["src/**", "cases/**", "tests/**", "README.md", "Cargo.toml"]
+include = ["src/**", "cases/**", "tests/**", "README.md", "REFERENCE.md", "Cargo.toml"]
[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
diff --git a/README.md b/README.md
index 428155d..5915842 100644
--- a/README.md
+++ b/README.md
@@ -8,10 +8,13 @@ There are also a few live tests that are just to see if you can actually make a
| Suite | Contents |
|---|---|
-| `operations.json` | Operations over recorded HTTP |
+| `operations.json` | Object operations over recorded HTTP |
+| `management.json` | Bucket and container operations over recorded HTTP |
| `vectors.json` | Digests and signatures |
| `live.json` | Probes against a live service |
+[REFERENCE.md](REFERENCE.md) describes the adapter protocol.
+
## Example test of `borink-object-storage`
`adapters/borink` builds the adapter that borink-org/object-storage keeps in [`hosts/object-tests`](https://github.com/borink-org/object-storage/tree/master/hosts/object-tests), at the commit its `Cargo.toml` pins. That adapter lives beside the crates whose API it calls, and object-storage grades every change against this suite.
diff --git a/REFERENCE.md b/REFERENCE.md
new file mode 100644
index 0000000..b467181
--- /dev/null
+++ b/REFERENCE.md
@@ -0,0 +1,43 @@
+# Grader reference
+
+```nu
+./target/debug/object-tests grade cases/operations.json --profile s3 -- ADAPTER
+```
+
+`--case`, `--provider` and `--profile` select cases. `--expected-unsupported FILE` lists cases, patterns with `*`, or `field:/value/...` result fields that may be unsupported; `--record-unsupported FILE` writes that list. Exit code `0` means every case passed.
+
+## Adapter protocol
+
+The grader starts the adapter once per case, writes one JSON input to its stdin and reads one JSON result from its stdout:
+
+```json
+{"version":1,"mode":"offline","provider":"azure","endpoint":{"url":"http://127.0.0.1:PORT","account":"fixture","bucket":"fixture"},"call":{"op":"get","key":"a b"}}
+```
+
+Use `endpoint` with dummy credentials, and `endpoint.proxy_url` as the HTTP proxy where given. Map `call` to the client and report what it returns. Do not encode keys, repair client behavior or make extra calls.
+
+```json
+{"outcome":"ok","value":{"body_base64":"aGVsbG8="}}
+{"outcome":"error","kind":"not_found","status":404,"code":"BlobNotFound"}
+{"outcome":"refused","kind":"invalid_range","parameter":"range"}
+{"outcome":"unsupported","reason":"not mapped","parameter":"range"}
+```
+
+- `error`: the service refused the call.
+- `refused`: the client refused it before sending.
+- `unsupported`: the client cannot make it. Naming a `parameter` declines that parameter, which some cases permit.
+
+An error names a `kind`. `not_found` means the object is absent, `container_not_found` the bucket or container, and `missing` that the answer cannot say which. The others are `precondition`, `not_modified`, `permission_denied` and `other`.
+
+Leave out a result property the client does not expose, and name it in `unsupported_fields`, as `[{"at":"/value/content_md5_base64","reason":"..."}]`.
+
+Keys are unescaped, bodies base64, ranges an offset and an exclusive end. A `checksum` without `value_base64` is for the client to compute. Tags are an object, or a list of `{"key", "value"}` pairs where a key may repeat. `content_range` reports a served range as `bytes FIRST-LAST/SIZE`.
+
+## Cases
+
+[model.rs](src/model.rs) defines the format.
+
+- `origin` says where the responses come from: `observed` (the default), `transient` (sent, but not on demand) or `constructed` (written by hand). `derived_from` names the recorded case such a case edits.
+- `refusal` holds the checks a refusal must pass; a case without it accepts none. `decline_permitted` lets an `unsupported` result that names the parameter pass.
+- Checks address JSON pointers. `matches` is a whole-string regex, `xml` compares structure, and `optional` permits absence only. `blob_batch` and `body_checksum` apply at the request's root.
+- A request header's value holds one character per byte, so `é` is the byte e9 and `é` its UTF-8.
diff --git a/adapters/borink/Cargo.lock b/adapters/borink/Cargo.lock
index f5f26f4..d502883 100644
--- a/adapters/borink/Cargo.lock
+++ b/adapters/borink/Cargo.lock
@@ -31,26 +31,29 @@ dependencies = [
]
[[package]]
-name = "borink-crypto"
-version = "0.0.1"
-source = "git+https://github.com/borink-org/object-storage.git?rev=03829e1253bccf62ae55d09b607731a5c4b74952#03829e1253bccf62ae55d09b607731a5c4b74952"
+name = "borink-object-storage-crypto"
+version = "0.0.3"
+source = "git+https://github.com/borink-org/object-storage.git?rev=deb671c5bd30939bef1bb1144f36c3a43e66d9d0#deb671c5bd30939bef1bb1144f36c3a43e66d9d0"
dependencies = [
"borink-object-storage-proto",
+ "hmac",
"md-5",
+ "sha1",
+ "sha2",
]
[[package]]
name = "borink-object-storage-proto"
-version = "0.0.1"
-source = "git+https://github.com/borink-org/object-storage.git?rev=03829e1253bccf62ae55d09b607731a5c4b74952#03829e1253bccf62ae55d09b607731a5c4b74952"
+version = "0.0.3"
+source = "git+https://github.com/borink-org/object-storage.git?rev=deb671c5bd30939bef1bb1144f36c3a43e66d9d0#deb671c5bd30939bef1bb1144f36c3a43e66d9d0"
[[package]]
name = "borink-object-tests-adapter"
version = "0.0.0"
-source = "git+https://github.com/borink-org/object-storage.git?rev=03829e1253bccf62ae55d09b607731a5c4b74952#03829e1253bccf62ae55d09b607731a5c4b74952"
+source = "git+https://github.com/borink-org/object-storage.git?rev=deb671c5bd30939bef1bb1144f36c3a43e66d9d0#deb671c5bd30939bef1bb1144f36c3a43e66d9d0"
dependencies = [
"base64 0.22.1",
- "borink-crypto",
+ "borink-object-storage-crypto",
"borink-object-storage-proto",
"serde_json",
"ureq",
@@ -78,6 +81,21 @@ version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600"
+[[package]]
+name = "cmov"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a"
+
+[[package]]
+name = "cpufeatures"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "crypto-common"
version = "0.2.2"
@@ -87,6 +105,15 @@ dependencies = [
"hybrid-array",
]
+[[package]]
+name = "ctutils"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e"
+dependencies = [
+ "cmov",
+]
+
[[package]]
name = "digest"
version = "0.11.3"
@@ -95,6 +122,7 @@ checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2"
dependencies = [
"block-buffer",
"crypto-common",
+ "ctutils",
]
[[package]]
@@ -114,6 +142,15 @@ dependencies = [
"wasi",
]
+[[package]]
+name = "hmac"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f"
+dependencies = [
+ "digest",
+]
+
[[package]]
name = "http"
version = "1.5.0"
@@ -294,6 +331,28 @@ dependencies = [
"zmij",
]
+[[package]]
+name = "sha1"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha2"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
[[package]]
name = "shlex"
version = "2.0.1"
diff --git a/adapters/borink/Cargo.toml b/adapters/borink/Cargo.toml
index 5678136..707eee7 100644
--- a/adapters/borink/Cargo.toml
+++ b/adapters/borink/Cargo.toml
@@ -11,7 +11,7 @@ publish = false
[dependencies]
# The adapter itself lives in borink-org/object-storage, beside the crates whose
# API it calls. This is the commit whose adapter speaks this revision's protocol.
-borink-object-tests-adapter = { git = "https://github.com/borink-org/object-storage.git", rev = "03829e1253bccf62ae55d09b607731a5c4b74952" }
+borink-object-tests-adapter = { git = "https://github.com/borink-org/object-storage.git", rev = "deb671c5bd30939bef1bb1144f36c3a43e66d9d0" }
[features]
# HTTPS, which only the live probes need. Offline grading uses plain HTTP on loopback.
diff --git a/cases/management.json b/cases/management.json
new file mode 100644
index 0000000..bbc3eca
--- /dev/null
+++ b/cases/management.json
@@ -0,0 +1,2640 @@
+{
+ "version": 1,
+ "index": {
+ "management/azure-hns/container-properties": "Read the properties of a container",
+ "management/azure-hns/container-properties-absent": "Report a missing container when reading its properties",
+ "management/azure-hns/create-container": "Create a container",
+ "management/azure-hns/create-container-exists": "Refuse to create a container that exists",
+ "management/azure-hns/create-container-invalid-name": "Refuse a container name with capitals and an underscore",
+ "management/azure-hns/delete-container": "Delete a container",
+ "management/azure-hns/delete-container-absent": "Report a missing container on delete",
+ "management/azure-hns/list-containers": "List the containers whose names start with a prefix",
+ "management/azure/container-properties": "Read the properties of a container",
+ "management/azure/container-properties-absent": "Report a missing container when reading its properties",
+ "management/azure/create-container": "Create a container",
+ "management/azure/create-container-exists": "Refuse to create a container that exists",
+ "management/azure/create-container-invalid-name": "Refuse a container name with capitals and an underscore",
+ "management/azure/delete-container": "Delete a container",
+ "management/azure/delete-container-absent": "Report a missing container on delete",
+ "management/azure/list-containers": "List the containers whose names start with a prefix",
+ "management/s3-express/create-bucket": "Create a directory bucket in an availability zone. The request goes to the regional control endpoint, s3express-control, by path, signed with the account credentials and no session",
+ "management/s3/create-bucket": "Create a bucket in the region of the endpoint",
+ "management/s3/create-bucket-owned": "Refuse to create a bucket that the account already owns",
+ "management/s3/delete-bucket": "Delete an empty bucket",
+ "management/s3/get-bucket-versioning": "Report a bucket's versioning status, Enabled once versioning was turned on",
+ "management/s3/get-bucket-versioning-never-enabled": "Report no versioning status for a bucket that never had versioning turned on. S3 answers a VersioningConfiguration without a Status",
+ "management/s3/head-bucket": "Confirm that a bucket exists",
+ "management/s3/head-bucket-missing": "Report a bucket that does not exist",
+ "management/s3/list-buckets": "List the buckets whose names start with a prefix",
+ "management/s3/put-bucket-versioning": "Turn on versioning in a bucket, with a VersioningConfiguration whose Status is Enabled. The data-plane runs keep earlier versions in such a bucket"
+ },
+ "profiles": {
+ "azure": {
+ "provider": "azure",
+ "endpoint": {
+ "account": "fixture",
+ "bucket": "fixture",
+ "region": "us-east-1"
+ },
+ "checks": [
+ {
+ "at": "/headers/x-ms-date",
+ "optional": true,
+ "rule": {
+ "is": "fresh",
+ "format": "http",
+ "max_past_seconds": 900,
+ "max_future_seconds": 60
+ }
+ },
+ {
+ "at": "/headers/date",
+ "optional": true,
+ "rule": {
+ "is": "fresh",
+ "format": "http",
+ "max_past_seconds": 900,
+ "max_future_seconds": 60
+ }
+ },
+ {
+ "at": "/headers/x-ms-client-request-id",
+ "optional": true,
+ "rule": {
+ "is": "matches",
+ "pattern": ".{0,1024}"
+ }
+ },
+ {
+ "at": "/headers/x-ms-version",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "2018-11-09",
+ "2019-12-12",
+ "2020-10-02",
+ "2021-12-02",
+ "2023-11-03",
+ "2024-11-04",
+ "2025-01-05",
+ "2025-11-05",
+ "2026-02-06",
+ "2026-04-06"
+ ]
+ }
+ }
+ ],
+ "allow_headers": [
+ "host",
+ "content-length",
+ "transfer-encoding",
+ "connection",
+ "expect",
+ "user-agent",
+ "accept",
+ "accept-encoding",
+ "authorization"
+ ],
+ "allow_query": []
+ },
+ "azure-hns": {
+ "provider": "azure",
+ "endpoint": {
+ "account": "fixture",
+ "bucket": "fixture",
+ "hierarchical_namespace": true,
+ "region": "us-east-1"
+ },
+ "checks": [
+ {
+ "at": "/headers/x-ms-date",
+ "optional": true,
+ "rule": {
+ "is": "fresh",
+ "format": "http",
+ "max_past_seconds": 900,
+ "max_future_seconds": 60
+ }
+ },
+ {
+ "at": "/headers/date",
+ "optional": true,
+ "rule": {
+ "is": "fresh",
+ "format": "http",
+ "max_past_seconds": 900,
+ "max_future_seconds": 60
+ }
+ },
+ {
+ "at": "/headers/x-ms-client-request-id",
+ "optional": true,
+ "rule": {
+ "is": "matches",
+ "pattern": ".{0,1024}"
+ }
+ },
+ {
+ "at": "/headers/x-ms-version",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "2018-11-09",
+ "2019-12-12",
+ "2020-10-02",
+ "2021-12-02",
+ "2023-11-03",
+ "2024-11-04",
+ "2025-01-05",
+ "2025-11-05",
+ "2026-02-06",
+ "2026-04-06"
+ ]
+ }
+ }
+ ],
+ "allow_headers": [
+ "host",
+ "content-length",
+ "transfer-encoding",
+ "connection",
+ "expect",
+ "user-agent",
+ "accept",
+ "accept-encoding",
+ "authorization"
+ ],
+ "allow_query": []
+ },
+ "s3": {
+ "provider": "s3",
+ "endpoint": {
+ "account": "fixture",
+ "bucket": "fixture",
+ "region": "us-east-1"
+ },
+ "checks": [
+ {
+ "at": "/headers/x-amz-date",
+ "optional": true,
+ "rule": {
+ "is": "fresh",
+ "format": "amz",
+ "max_past_seconds": 900,
+ "max_future_seconds": 60
+ }
+ },
+ {
+ "at": "/headers/x-amz-content-sha256",
+ "optional": true,
+ "rule": {
+ "is": "matches",
+ "pattern": "[0-9a-f]{64}|UNSIGNED-PAYLOAD"
+ }
+ },
+ {
+ "at": "/headers/x-amz-api-version",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "2006-03-01"
+ }
+ },
+ {
+ "at": "/raw_query",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "[^+]*"
+ },
+ "because": "S3 reads a + in a query as a space, so a plus in a prefix, token or upload ID must go as %2B and a space as %20"
+ }
+ ],
+ "allow_headers": [
+ "host",
+ "content-length",
+ "transfer-encoding",
+ "connection",
+ "expect",
+ "user-agent",
+ "accept",
+ "accept-encoding",
+ "authorization",
+ "amz-sdk-invocation-id",
+ "amz-sdk-request",
+ "x-amz-user-agent"
+ ],
+ "allow_query": []
+ },
+ "s3-express": {
+ "provider": "s3",
+ "endpoint": {
+ "bucket": "fixture--euc1-az1--x-s3",
+ "control_url": "http://s3express-control.eu-central-1.fixture.invalid",
+ "directory_bucket": true,
+ "region": "eu-central-1",
+ "url": "http://s3express-euc1-az1.fixture.invalid"
+ },
+ "checks": [
+ {
+ "at": "/headers/x-amz-date",
+ "optional": true,
+ "rule": {
+ "is": "fresh",
+ "format": "amz",
+ "max_past_seconds": 900,
+ "max_future_seconds": 60
+ }
+ },
+ {
+ "at": "/headers/x-amz-content-sha256",
+ "optional": true,
+ "rule": {
+ "is": "matches",
+ "pattern": "[0-9a-f]{64}|UNSIGNED-PAYLOAD"
+ }
+ },
+ {
+ "at": "/headers/x-amz-api-version",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "2006-03-01"
+ }
+ },
+ {
+ "at": "/raw_query",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "[^+]*"
+ },
+ "because": "S3 reads a + in a query as a space, so a plus in a prefix, token or upload ID must go as %2B and a space as %20"
+ }
+ ],
+ "allow_headers": [
+ "host",
+ "content-length",
+ "transfer-encoding",
+ "connection",
+ "expect",
+ "user-agent",
+ "accept",
+ "accept-encoding",
+ "authorization",
+ "amz-sdk-invocation-id",
+ "amz-sdk-request",
+ "x-amz-user-agent",
+ "proxy-connection"
+ ],
+ "allow_query": []
+ }
+ },
+ "cases": [
+ {
+ "id": "management/azure/list-containers",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "List the containers whose names start with a prefix",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/list-containers2"
+ ],
+ "call": {
+ "op": "azure.list_containers",
+ "prefix": "otc-listed-"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "otc-listed-"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "otc-listed-otc-listed-aMon, 01 Jan 2024 00:00:00 GMT\"fixture-etag\"unlockedavailablefalsefalseotc-listed-bMon, 01 Jan 2024 00:00:00 GMT\"fixture-etag\"unlockedavailablefalsefalse"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/containers",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ "otc-listed-a",
+ "otc-listed-b"
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/azure/container-properties-absent",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report a missing container when reading its properties",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-container-properties"
+ ],
+ "call": {
+ "container": "otc-absent",
+ "op": "azure.container_properties"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/otc-absent"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ContainerNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ContainerNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ContainerNotFound"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/azure/container-properties",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Read the properties of a container",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-container-properties"
+ ],
+ "call": {
+ "container": "otc-read",
+ "op": "azure.container_properties"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/otc-read"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-has-immutability-policy": "false",
+ "x-ms-has-legal-hold": "false",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/azure/delete-container-absent",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report a missing container on delete",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/delete-container"
+ ],
+ "call": {
+ "container": "otc-absent",
+ "op": "azure.delete_container"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/otc-absent"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ContainerNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ContainerNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ContainerNotFound"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/azure/delete-container",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Delete a container",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/delete-container"
+ ],
+ "call": {
+ "container": "otc-deleted",
+ "op": "azure.delete_container"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/otc-deleted"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/azure/create-container-invalid-name",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Refuse a container name with capitals and an underscore",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata"
+ ],
+ "call": {
+ "container": "Otc_Invalid",
+ "op": "azure.create_container"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/Otc_Invalid"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidResourceName"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidResourceNameFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidResourceName"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/azure/create-container-exists",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Refuse to create a container that exists",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/create-container"
+ ],
+ "call": {
+ "container": "otc-existing",
+ "op": "azure.create_container"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/otc-existing"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ContainerAlreadyExists"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ContainerAlreadyExistsFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 409
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ContainerAlreadyExists"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/azure/create-container",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Create a container",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/create-container"
+ ],
+ "call": {
+ "container": "otc-created",
+ "op": "azure.create_container"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/otc-created"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/azure-hns/list-containers",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "List the containers whose names start with a prefix",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/list-containers2"
+ ],
+ "call": {
+ "op": "azure.list_containers",
+ "prefix": "otc-listed-"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "otc-listed-"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "otc-listed-otc-listed-aMon, 01 Jan 2024 00:00:00 GMT\"fixture-etag\"unlockedavailablefalsefalseotc-listed-bMon, 01 Jan 2024 00:00:00 GMT\"fixture-etag\"unlockedavailablefalsefalse"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/containers",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ "otc-listed-a",
+ "otc-listed-b"
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/azure-hns/container-properties-absent",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Report a missing container when reading its properties",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-container-properties"
+ ],
+ "call": {
+ "container": "otc-absent",
+ "op": "azure.container_properties"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/otc-absent"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ContainerNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ContainerNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ContainerNotFound"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/azure-hns/container-properties",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Read the properties of a container",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-container-properties"
+ ],
+ "call": {
+ "container": "otc-read",
+ "op": "azure.container_properties"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/otc-read"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-has-immutability-policy": "false",
+ "x-ms-has-legal-hold": "false",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/azure-hns/delete-container-absent",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Report a missing container on delete",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/delete-container"
+ ],
+ "call": {
+ "container": "otc-absent",
+ "op": "azure.delete_container"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/otc-absent"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ContainerNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ContainerNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ContainerNotFound"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/azure-hns/delete-container",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Delete a container",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/delete-container"
+ ],
+ "call": {
+ "container": "otc-deleted",
+ "op": "azure.delete_container"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/otc-deleted"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/azure-hns/create-container-invalid-name",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Refuse a container name with capitals and an underscore",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata"
+ ],
+ "call": {
+ "container": "Otc_Invalid",
+ "op": "azure.create_container"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/Otc_Invalid"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidResourceName"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidResourceNameFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidResourceName"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/azure-hns/create-container-exists",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Refuse to create a container that exists",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/create-container"
+ ],
+ "call": {
+ "container": "otc-existing",
+ "op": "azure.create_container"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/otc-existing"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ContainerAlreadyExists"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ContainerAlreadyExistsFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 409
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ContainerAlreadyExists"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/azure-hns/create-container",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Create a container",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/create-container"
+ ],
+ "call": {
+ "container": "otc-created",
+ "op": "azure.create_container"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/otc-created"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/s3/delete-bucket",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Delete an empty bucket",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html"
+ ],
+ "call": {
+ "bucket": "object-tests-deleted",
+ "op": "s3.delete_bucket"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests-deleted"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 204,
+ "headers": {
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/s3/head-bucket",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Confirm that a bucket exists",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html"
+ ],
+ "call": {
+ "bucket": "fixture",
+ "op": "s3.head_bucket"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "x-amz-bucket-region": "eu-central-1"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/s3/head-bucket-missing",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report a bucket that does not exist",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html"
+ ],
+ "call": {
+ "bucket": "object-tests-absent",
+ "op": "s3.head_bucket"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests-absent"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/s3/list-buckets",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "List the buckets whose names start with a prefix",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html"
+ ],
+ "call": {
+ "op": "s3.list_buckets",
+ "prefix": "object-tests-listed-"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests-listed-"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixture-ownerobject-tests-listed-a2024-01-01T00:00:00.000Zeu-central-1object-tests-listed-b2024-01-01T00:00:00.000Zeu-central-1object-tests-listed-"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/buckets",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ "object-tests-listed-a",
+ "object-tests-listed-b"
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/s3/create-bucket-owned",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Refuse to create a bucket that the account already owns",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html"
+ ],
+ "call": {
+ "bucket": "fixture",
+ "location": "eu-central-1",
+ "op": "s3.create_bucket"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "eu-central-1"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nBucketAlreadyOwnedByYouFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 409
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BucketAlreadyOwnedByYou"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/s3/create-bucket",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Create a bucket in the region of the endpoint",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html"
+ ],
+ "call": {
+ "bucket": "object-tests-created",
+ "location": "eu-central-1",
+ "op": "s3.create_bucket"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests-created"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "eu-central-1"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "location": "/object-tests-created"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/s3/put-bucket-versioning",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Turn on versioning in a bucket, with a VersioningConfiguration whose Status is Enabled. The data-plane runs keep earlier versions in such a bucket",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html"
+ ],
+ "call": {
+ "bucket": "object-tests-versioned",
+ "op": "s3.put_bucket_versioning",
+ "status": "Enabled"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests-versioned"
+ }
+ },
+ {
+ "at": "/query/versioning",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "Enabled"
+ }
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc64nvme",
+ "optional": true,
+ "rule": {
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type",
+ "x-amz-sdk-checksum-algorithm"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/s3/get-bucket-versioning",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report a bucket's versioning status, Enabled once versioning was turned on",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html"
+ ],
+ "call": {
+ "bucket": "object-tests-versioned",
+ "op": "s3.get_bucket_versioning"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests-versioned"
+ }
+ },
+ {
+ "at": "/query/versioning",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type",
+ "x-amz-sdk-checksum-algorithm"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nEnabled"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Enabled"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/s3/get-bucket-versioning-never-enabled",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report no versioning status for a bucket that never had versioning turned on. S3 answers a VersioningConfiguration without a Status",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html"
+ ],
+ "call": {
+ "bucket": "object-tests-versioned",
+ "op": "s3.get_bucket_versioning"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests-versioned"
+ }
+ },
+ {
+ "at": "/query/versioning",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type",
+ "x-amz-sdk-checksum-algorithm"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "management/s3-express/create-bucket",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Create a directory bucket in an availability zone. The request goes to the regional control endpoint, s3express-control, by path, signed with the account credentials and no session",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html",
+ "https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html"
+ ],
+ "call": {
+ "availability_zone": "euc1-az1",
+ "bucket": "object-tests-created--euc1-az1--x-s3",
+ "op": "s3.create_bucket"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests-created--euc1-az1--x-s3"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "euc1-az1AvailabilityZoneSingleAvailabilityZoneDirectory"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "s3express-control.eu-central-1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "location": "/object-tests-created--euc1-az1--x-s3"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ }
+ ]
+}
diff --git a/cases/operations.json b/cases/operations.json
index 7acbaca..abb7476 100644
--- a/cases/operations.json
+++ b/cases/operations.json
@@ -1,5 +1,1083 @@
{
"version": 1,
+ "index": {
+ "operations/azure-hns/abort-copy": "Abort a pending copy by its copy ID, with x-ms-copy-action: abort",
+ "operations/azure-hns/abort-copy-finished": "Report an abort of a copy that has finished as an error, 409 NoPendingCopyOperation",
+ "operations/azure-hns/append-block": "Append a block to an append blob and report its offset",
+ "operations/azure-hns/append-block-at-wrong-position": "Refuse an append whose position condition does not match the blob length",
+ "operations/azure-hns/append-block-to-block-blob": "Refuse an append to a block blob",
+ "operations/azure-hns/commit": "commit",
+ "operations/azure-hns/commit-container-missing": "commit container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/azure-hns/commit-content-properties": "Commit a block list with content properties, sent as x-ms-blob-content-type, -language, -disposition and x-ms-blob-cache-control",
+ "operations/azure-hns/commit-declaring-md5": "commit declaring md5",
+ "operations/azure-hns/commit-duplicate-id": "commit duplicate id",
+ "operations/azure-hns/commit-escaped-id": "commit escaped id",
+ "operations/azure-hns/commit-key-double-slash": "commit, with the key \"double//slash.txt\"",
+ "operations/azure-hns/commit-key-hash": "commit, with the key \"hash#tag.txt\"",
+ "operations/azure-hns/commit-key-non-ascii": "commit, with the key \"café/雪.txt\"",
+ "operations/azure-hns/commit-key-percent": "commit, with the key \"percent%20.txt\"",
+ "operations/azure-hns/commit-key-plus": "commit, with the key \"plus+plus.txt\"",
+ "operations/azure-hns/commit-key-question": "commit, with the key \"question?mark.txt\"",
+ "operations/azure-hns/commit-key-space": "commit, with the key \"space name.txt\"",
+ "operations/azure-hns/commit-key-trailing-slash": "commit, with the key \"trailing-slash/\"",
+ "operations/azure-hns/commit-lost-the-race-to-create": "commit lost the race to create",
+ "operations/azure-hns/commit-nothing": "commit nothing",
+ "operations/azure-hns/commit-over-whole-object": "commit over whole object",
+ "operations/azure-hns/commit-precondition-failed": "commit precondition failed",
+ "operations/azure-hns/commit-refused": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure-hns/commit-reordered": "commit reordered",
+ "operations/azure-hns/commit-replacement": "commit replacement",
+ "operations/azure-hns/commit-unstaged-id": "commit unstaged id",
+ "operations/azure-hns/commit-unstaged-id-code-in-body": "commit unstaged id, with the error code only in the XML body",
+ "operations/azure-hns/commit-with-tier": "Commit a block list into an access tier, named in x-ms-access-tier",
+ "operations/azure-hns/copy": "Copy an object to another key in the same container",
+ "operations/azure-hns/copy-across-containers": "Copy a blob from another container of the same account, which x-ms-copy-source names in its URL",
+ "operations/azure-hns/copy-if-none-match-exists": "Report a copy with If-None-Match: * onto a blob that exists as a failed condition on the destination",
+ "operations/azure-hns/copy-missing-source": "Refuse a copy whose source does not exist",
+ "operations/azure-hns/copy-pending": "Report a copy that Azure answers as pending with its copy ID, so that a caller can follow it with a HEAD or abort it",
+ "operations/azure-hns/copy-replace-metadata": "Copy a blob with new metadata, which replaces all of the source's. A copy that names no metadata keeps the source's",
+ "operations/azure-hns/copy-source-if-match": "Copy a blob only if the source still has this ETag, named in x-ms-source-if-match",
+ "operations/azure-hns/copy-source-if-match-failed": "Report a copy whose source does not have the ETag in x-ms-source-if-match as a failed condition, 412 SourceConditionNotMet",
+ "operations/azure-hns/copy-source-if-unmodified-since-failed": "Report a copy whose source changed after the time in x-ms-source-if-unmodified-since as a failed condition, 412 SourceConditionNotMet",
+ "operations/azure-hns/copy-source-key-encoded": "Copy from a key with a space, +, %, é, ? and #. The x-ms-copy-source URL percent-encodes every byte of the key outside letters, digits, -._~ and /",
+ "operations/azure-hns/copy-sync": "Copy a blob with Copy Blob From URL, x-ms-requires-sync: true, which answers once the copy is done. The source must be readable by URL: by a SAS, or by a bearer token in x-ms-copy-source-authorization",
+ "operations/azure-hns/copy-tier": "Copy a blob into another access tier, named in x-ms-access-tier",
+ "operations/azure-hns/create-append": "Create an empty append blob",
+ "operations/azure-hns/create-page": "Create a page blob of 1,024 bytes, which an HNS account does not support",
+ "operations/azure-hns/delete-accepted": "delete accepted",
+ "operations/azure-hns/delete-accepted-key-double-slash": "delete accepted, with the key \"double//slash.txt\"",
+ "operations/azure-hns/delete-accepted-key-hash": "delete accepted, with the key \"hash#tag.txt\"",
+ "operations/azure-hns/delete-accepted-key-non-ascii": "delete accepted, with the key \"café/雪.txt\"",
+ "operations/azure-hns/delete-accepted-key-percent": "delete accepted, with the key \"percent%20.txt\"",
+ "operations/azure-hns/delete-accepted-key-plus": "delete accepted, with the key \"plus+plus.txt\"",
+ "operations/azure-hns/delete-accepted-key-question": "delete accepted, with the key \"question?mark.txt\"",
+ "operations/azure-hns/delete-accepted-key-space": "delete accepted, with the key \"space name.txt\"",
+ "operations/azure-hns/delete-accepted-key-trailing-slash": "delete accepted, with the key \"trailing-slash/\"",
+ "operations/azure-hns/delete-container-missing": "delete container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/azure-hns/delete-current-version": "delete current version",
+ "operations/azure-hns/delete-if-match-current": "delete if match current",
+ "operations/azure-hns/delete-if-unmodified-since-past": "Refuse a delete with 412 when the object changed after If-Unmodified-Since",
+ "operations/azure-hns/delete-leased-if-match-without-lease-id": "Refuse to delete a leased object whose If-Match holds but that names no lease ID",
+ "operations/azure-hns/delete-leased-without-lease-id": "Refuse to delete a leased object without its lease ID",
+ "operations/azure-hns/delete-many": "Delete several objects in one batch and report each result",
+ "operations/azure-hns/delete-many-256": "Delete 256 keys in one batch, the most Azure takes",
+ "operations/azure-hns/delete-many-257": "Report a batch of 257 deletions, one more than Azure takes, as an error. Azure answers 202 with one part and no Content-ID, 400 ExceedsMaxBatchRequestCount, for the whole batch, not one part per deletion. A client may refuse it before sending",
+ "operations/azure-hns/delete-many-answers-out-of-order": "Match each part of a batch answer to its deletion by Content-ID, which links them, not by position. Azure has answered every recorded batch in order, up to 256 parts; this answer is written by hand",
+ "operations/azure-hns/delete-many-container-missing": "Report a batch in a missing container, which Azure answers 202 with 404 ContainerNotFound for each deletion, as that error for each key and none deleted, or as one error of kind container_not_found",
+ "operations/azure-hns/delete-many-denied": "Report each deletion of a batch that Azure refuses inside its 202 answer, here every one with 403 AuthorizationPermissionMismatch, as that key's error, not as deleted",
+ "operations/azure-hns/delete-many-lf-line-endings": "Read a batch answer whose lines end in LF alone correctly, or report it as an error, but never half-read it. Azure has not been seen to send it: HTTP and multipart require CRLF. This answer is the recorded one with every CR removed",
+ "operations/azure-hns/delete-many-server-busy": "Report a batch that Azure answers as a whole with 503 ServerBusy as an error, never as deleted keys. A client may retry up to five times first",
+ "operations/azure-hns/delete-many-unauthenticated": "Report a batch whose token Azure does not accept as one error for the whole batch, as Azure answers it, not as an answer per key",
+ "operations/azure-hns/delete-many-without-content-id": "Report a batch answer whose parts carry no Content-ID as an error. Without one, only the order of the parts would link a result to its key, and a guess could report one key deleted when another failed. Azure echoes the Content-ID of every subrequest; this answer is the recorded one with them removed",
+ "operations/azure-hns/delete-missing": "delete missing. A client reports it as not_found: the object is absent",
+ "operations/azure-hns/delete-precondition-failed": "delete precondition failed",
+ "operations/azure-hns/delete-precondition-failed-code-in-body": "delete precondition failed, with the error code only in the XML body",
+ "operations/azure-hns/delete-previous-version": "delete previous version",
+ "operations/azure-hns/delete-refused": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure-hns/delete-refused-for-snapshots": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure-hns/delete-server-busy": "Report a 503 ServerBusy answer as an error, after at most 5 retries",
+ "operations/azure-hns/delete-snapshot": "delete snapshot",
+ "operations/azure-hns/delete-snapshots-only": "delete snapshots only",
+ "operations/azure-hns/delete-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure-hns/delete-versioned-object": "delete versioned object",
+ "operations/azure-hns/delete-with-snapshots": "delete with snapshots",
+ "operations/azure-hns/get-after-snapshots-deleted": "get after snapshots deleted",
+ "operations/azure-hns/get-body-cut-short": "Report a body that ends before its Content-Length as an error, or resume it, but never return the short body",
+ "operations/azure-hns/get-committed": "get committed",
+ "operations/azure-hns/get-committed-nothing": "get committed nothing",
+ "operations/azure-hns/get-committed-over-whole-object": "get committed over whole object",
+ "operations/azure-hns/get-container-missing": "get container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/azure-hns/get-content-encoding-gzip": "Return the stored gzip bytes and Content-Encoding: gzip without decoding them",
+ "operations/azure-hns/get-content-properties": "Return the stored content properties from a GET",
+ "operations/azure-hns/get-current-version": "get current version",
+ "operations/azure-hns/get-current-version-of-deleted-object": "get current version of deleted object",
+ "operations/azure-hns/get-deleted-snapshot": "get deleted snapshot",
+ "operations/azure-hns/get-deleted-versioned-object": "get deleted versioned object",
+ "operations/azure-hns/get-duplicate-id": "get duplicate id",
+ "operations/azure-hns/get-empty": "get empty",
+ "operations/azure-hns/get-if-match-current": "get if match current",
+ "operations/azure-hns/get-if-modified-since-future": "Report 304 when If-Modified-Since names a future date, which Azure does not ignore",
+ "operations/azure-hns/get-if-modified-since-past": "Read an object modified since a past date",
+ "operations/azure-hns/get-if-none-match-other": "get if none match other",
+ "operations/azure-hns/get-if-unmodified-since-past": "Refuse a read with 412 when the object changed after If-Unmodified-Since",
+ "operations/azure-hns/get-key-with-hash": "get key with hash",
+ "operations/azure-hns/get-key-with-non-ascii": "get key unicode",
+ "operations/azure-hns/get-key-with-percent": "get key with percent",
+ "operations/azure-hns/get-key-with-plus": "get key with plus",
+ "operations/azure-hns/get-key-with-question": "get key question",
+ "operations/azure-hns/get-key-with-separators": "get key separators",
+ "operations/azure-hns/get-key-with-space": "get key space",
+ "operations/azure-hns/get-metadata": "get metadata",
+ "operations/azure-hns/get-metadata-empty-value": "get metadata empty value",
+ "operations/azure-hns/get-metadata-ignores-unknown-headers": "Surface user metadata; unknown headers must not become metadata.",
+ "operations/azure-hns/get-metadata-of-snapshot": "get metadata of snapshot",
+ "operations/azure-hns/get-metadata-replaced": "get metadata replaced",
+ "operations/azure-hns/get-missing": "get missing. A client reports it as not_found: the object is absent",
+ "operations/azure-hns/get-missing-code-in-body": "get missing, with the error code only in the XML body. A client reports it as not_found: the object is absent",
+ "operations/azure-hns/get-noise-tolerance": "get noise tolerance",
+ "operations/azure-hns/get-not-modified": "get not modified",
+ "operations/azure-hns/get-page-ranges": "List the written ranges of a page blob, which an HNS account does not support",
+ "operations/azure-hns/get-precondition-failed": "get precondition failed",
+ "operations/azure-hns/get-previous-version": "get previous version",
+ "operations/azure-hns/get-previous-version-of-deleted-object": "get previous version of deleted object",
+ "operations/azure-hns/get-range": "get range",
+ "operations/azure-hns/get-range-empty": "Read a range of no bytes, whose start equals its end. HTTP has no form for it: bytes=5-4 is inverted, and the service ignores it and sends the whole object. A client may refuse it instead",
+ "operations/azure-hns/get-range-inverted": "get range inverted",
+ "operations/azure-hns/get-range-not-satisfiable": "get range not satisfiable",
+ "operations/azure-hns/get-range-of-empty-object": "Report a range read of an empty object as 416 InvalidRange: no range of it can be satisfied, not even its first byte",
+ "operations/azure-hns/get-range-open": "get range open",
+ "operations/azure-hns/get-range-past-the-end": "Read a range that ends past the object, which the service clips to the object's end. Report the window it served from Content-Range, bytes 28-29/30, so that the caller sees the range was clipped",
+ "operations/azure-hns/get-range-single-byte": "get range single byte",
+ "operations/azure-hns/get-reordered": "get reordered",
+ "operations/azure-hns/get-replacement": "get replacement",
+ "operations/azure-hns/get-server-busy": "Report a 503 ServerBusy answer as an error, after at most 5 retries",
+ "operations/azure-hns/get-snapshot": "get snapshot",
+ "operations/azure-hns/get-staged-only": "get staged only",
+ "operations/azure-hns/get-suffix": "get suffix",
+ "operations/azure-hns/get-suffix-longer-than-object": "get suffix longer than object",
+ "operations/azure-hns/get-tags": "Read the tags of an object, which an HNS account does not support",
+ "operations/azure-hns/get-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure-hns/get-unknown-snapshot": "get unknown snapshot",
+ "operations/azure-hns/get-unknown-version": "get unknown version",
+ "operations/azure-hns/get-whole": "get whole",
+ "operations/azure-hns/get-with-staged-blocks": "get with staged blocks",
+ "operations/azure-hns/get-xml-looking": "get xml looking",
+ "operations/azure-hns/head": "head",
+ "operations/azure-hns/head-access-tier": "Report a blob's access tier, which Azure sends in x-ms-access-tier",
+ "operations/azure-hns/head-committed": "head committed",
+ "operations/azure-hns/head-committed-declaring-md5": "head committed declaring md5",
+ "operations/azure-hns/head-container-missing": "Report a HEAD of a blob in a missing container as container_not_found. Azure answers 404 without a body, but names ContainerNotFound in x-ms-error-code",
+ "operations/azure-hns/head-content-properties": "Return the stored content properties from a HEAD",
+ "operations/azure-hns/head-copy-status": "Report the copy that wrote a blob, its x-ms-copy-status and x-ms-copy-id, from a HEAD of the blob",
+ "operations/azure-hns/head-if-unmodified-since-past": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since",
+ "operations/azure-hns/head-key-double-slash": "head, with the key \"double//slash.txt\"",
+ "operations/azure-hns/head-key-hash": "head, with the key \"hash#tag.txt\"",
+ "operations/azure-hns/head-key-non-ascii": "head, with the key \"café/雪.txt\"",
+ "operations/azure-hns/head-key-percent": "head, with the key \"percent%20.txt\"",
+ "operations/azure-hns/head-key-plus": "head, with the key \"plus+plus.txt\"",
+ "operations/azure-hns/head-key-question": "head, with the key \"question?mark.txt\"",
+ "operations/azure-hns/head-key-space": "head, with the key \"space name.txt\"",
+ "operations/azure-hns/head-key-trailing-slash": "head, with the key \"trailing-slash/\"",
+ "operations/azure-hns/head-metadata": "head metadata",
+ "operations/azure-hns/head-missing": "head missing. A client reports it as not_found: the object is absent",
+ "operations/azure-hns/head-previous-version": "head previous version",
+ "operations/azure-hns/head-snapshot": "head snapshot",
+ "operations/azure-hns/head-written-with-crc64": "head written with crc64",
+ "operations/azure-hns/head-written-with-md5": "head written with md5",
+ "operations/azure-hns/lease-acquire": "Acquire a lease on an object with a proposed lease ID",
+ "operations/azure-hns/lease-acquire-leased": "Refuse a second lease while another lease holds the object",
+ "operations/azure-hns/lease-break": "Break a lease at once",
+ "operations/azure-hns/lease-release": "Release a lease",
+ "operations/azure-hns/list-after-delete-with-versions": "list after delete with versions",
+ "operations/azure-hns/list-all-empty": "list empty",
+ "operations/azure-hns/list-all-order": "list order",
+ "operations/azure-hns/list-bad-marker": "list bad marker",
+ "operations/azure-hns/list-bad-marker-code-in-body": "list bad marker, with the error code only in the XML body",
+ "operations/azure-hns/list-container-missing": "list container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/azure-hns/list-delimited": "list delimited",
+ "operations/azure-hns/list-empty": "list empty",
+ "operations/azure-hns/list-encoded-names": "list encoded names",
+ "operations/azure-hns/list-first-page": "list first page",
+ "operations/azure-hns/list-key-equal-to-prefix": "list key equal to prefix",
+ "operations/azure-hns/list-key-equal-to-prefix-delimited": "list key equal to prefix delimited",
+ "operations/azure-hns/list-many-segments": "list many segments",
+ "operations/azure-hns/list-max-keys-zero": "list max keys zero",
+ "operations/azure-hns/list-metadata": "list metadata",
+ "operations/azure-hns/list-next-page": "list next page",
+ "operations/azure-hns/list-operation-timed-out": "Report a 500 OperationTimedOut answer as an error, after at most 5 retries",
+ "operations/azure-hns/list-order": "list order",
+ "operations/azure-hns/list-order-delimited": "list order delimited",
+ "operations/azure-hns/list-other-delimiter": "Report the 400 DelimiterIsInvalidForHNS that an HNS account answers to any delimiter but /",
+ "operations/azure-hns/list-page": "list page",
+ "operations/azure-hns/list-page-size-one": "A page of zero entries is out of range, but a page of one is not. Send a page size of 1 and report the one entry and the continuation token.",
+ "operations/azure-hns/list-pagination": "list pagination",
+ "operations/azure-hns/list-prefix-without-slash": "list prefix without slash",
+ "operations/azure-hns/list-separator-keys": "list separator keys",
+ "operations/azure-hns/list-separator-keys-delimited": "list separator keys delimited",
+ "operations/azure-hns/list-snapshots": "list snapshots",
+ "operations/azure-hns/list-snapshots-after-delete": "list snapshots after delete",
+ "operations/azure-hns/list-snapshots-after-snapshots-deleted": "list snapshots after snapshots deleted",
+ "operations/azure-hns/list-snapshots-and-versions": "list snapshots and versions",
+ "operations/azure-hns/list-staged-only": "list staged only",
+ "operations/azure-hns/list-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure-hns/list-versions": "list versions",
+ "operations/azure-hns/list-versions-of-deleted-object": "list versions of deleted object",
+ "operations/azure-hns/list-written-with-hashes": "list written with hashes",
+ "operations/azure-hns/list-xml-escaped": "list xml escaped",
+ "operations/azure-hns/put-container-missing": "put container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/azure-hns/put-content-disposition-non-ascii": "Write a Content-Disposition whose filename is outside ASCII. Azure refuses a disposition byte outside ASCII with 400 InvalidMetadata, so send an RFC 6266 filename*, which any reader decodes, or refuse the value",
+ "operations/azure-hns/put-content-encoding-gzip": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged",
+ "operations/azure-hns/put-content-properties": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write",
+ "operations/azure-hns/put-content-type-edge-spaces": "Write a content type with spaces at either end, which HTTP drops, so the service stores it trimmed. A client may refuse it",
+ "operations/azure-hns/put-content-type-non-ascii": "Write a Content-Type with a parameter outside ASCII, or refuse it. An HNS account takes the UTF-8 bytes but returns é as the byte e9, so they do not read back, and no encoding of a Content-Type parameter is one every reader decodes",
+ "operations/azure-hns/put-crc64-mismatch": "put crc64 mismatch",
+ "operations/azure-hns/put-created": "put created",
+ "operations/azure-hns/put-created-empty": "put created empty",
+ "operations/azure-hns/put-created-key-double-slash": "put created, with the key \"double//slash.txt\"",
+ "operations/azure-hns/put-created-key-hash": "put created, with the key \"hash#tag.txt\"",
+ "operations/azure-hns/put-created-key-non-ascii": "put created, with the key \"café/雪.txt\"",
+ "operations/azure-hns/put-created-key-percent": "put created, with the key \"percent%20.txt\"",
+ "operations/azure-hns/put-created-key-plus": "put created, with the key \"plus+plus.txt\"",
+ "operations/azure-hns/put-created-key-question": "put created, with the key \"question?mark.txt\"",
+ "operations/azure-hns/put-created-key-space": "put created, with the key \"space name.txt\"",
+ "operations/azure-hns/put-created-key-trailing-slash": "put created, with the key \"trailing-slash/\"",
+ "operations/azure-hns/put-first-version": "put first version",
+ "operations/azure-hns/put-from-url": "Write a block blob from the bytes at a URL with Put Blob From URL: a PUT with x-ms-blob-type: BlockBlob, x-ms-copy-source and no body, which answers once it is written",
+ "operations/azure-hns/put-if-match-current": "put if match current",
+ "operations/azure-hns/put-if-none-match-missing": "put if none match missing",
+ "operations/azure-hns/put-if-unmodified-since-past": "Refuse a write with 412 when the object changed after If-Unmodified-Since",
+ "operations/azure-hns/put-internal-error": "Report a 500 InternalError answer as an error, after at most 5 retries",
+ "operations/azure-hns/put-key-1024": "put key 1024",
+ "operations/azure-hns/put-key-1025": "put key 1025",
+ "operations/azure-hns/put-key-under-object": "put key under object",
+ "operations/azure-hns/put-leased-if-match-without-lease-id": "Refuse a write to a leased object whose If-Match holds but that names no lease ID",
+ "operations/azure-hns/put-leased-with-lease-id": "Write to a leased object with its lease ID",
+ "operations/azure-hns/put-leased-without-lease-id": "Refuse a write to a leased object that names no lease ID",
+ "operations/azure-hns/put-lost-the-race-to-create": "put lost the race to create",
+ "operations/azure-hns/put-md5-mismatch": "put md5 mismatch",
+ "operations/azure-hns/put-metadata": "put metadata",
+ "operations/azure-hns/put-metadata-empty-value": "put metadata empty value",
+ "operations/azure-hns/put-metadata-identifier-name": "An Azure metadata name must be a C# identifier, which may start with an underscore and hold digits. Send _a1; only a name that is no identifier may be refused.",
+ "operations/azure-hns/put-metadata-invalid-name": "put metadata invalid name",
+ "operations/azure-hns/put-metadata-non-ascii-value": "put metadata non ascii value",
+ "operations/azure-hns/put-metadata-replaced": "put metadata replaced",
+ "operations/azure-hns/put-over-snapshotted": "put over snapshotted",
+ "operations/azure-hns/put-overwrite": "put overwrite",
+ "operations/azure-hns/put-precondition-failed": "put precondition failed",
+ "operations/azure-hns/put-precondition-failed-code-in-body": "put precondition failed, with the error code only in the XML body",
+ "operations/azure-hns/put-refused": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure-hns/put-second-version": "put second version",
+ "operations/azure-hns/put-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure-hns/put-with-both-hashes": "Reject simultaneous transactional MD5 and CRC64",
+ "operations/azure-hns/put-with-crc64": "put with crc64",
+ "operations/azure-hns/put-with-md5": "put with md5",
+ "operations/azure-hns/put-with-tags": "Write an object with tags, which an HNS account does not support",
+ "operations/azure-hns/put-with-tier": "Write an object straight into the Cool access tier",
+ "operations/azure-hns/set-tags": "Replace the tags of an object, which an HNS account does not support",
+ "operations/azure-hns/set-tier-cool": "Move an object to the Cool access tier",
+ "operations/azure-hns/set-tier-unknown": "Refuse an access tier the service does not have",
+ "operations/azure-hns/snapshot": "snapshot",
+ "operations/azure-hns/stage": "stage",
+ "operations/azure-hns/stage-empty": "stage empty",
+ "operations/azure-hns/stage-escaped-id": "stage escaped id",
+ "operations/azure-hns/stage-from-url": "Stage a block from bytes 0 to 2 at a URL with Put Block From URL, the range named in x-ms-source-range with an inclusive end, as bytes=0-2",
+ "operations/azure-hns/stage-id-64-bytes": "A block ID decodes to at most 64 bytes, and Azure stages a block whose ID decodes to exactly 64. Send it; only a longer ID may be refused.",
+ "operations/azure-hns/stage-id-too-long": "stage id too long",
+ "operations/azure-hns/stage-key-double-slash": "stage, with the key \"double//slash.txt\"",
+ "operations/azure-hns/stage-key-hash": "stage, with the key \"hash#tag.txt\"",
+ "operations/azure-hns/stage-key-non-ascii": "stage, with the key \"café/雪.txt\"",
+ "operations/azure-hns/stage-key-percent": "stage, with the key \"percent%20.txt\"",
+ "operations/azure-hns/stage-key-plus": "stage, with the key \"plus+plus.txt\"",
+ "operations/azure-hns/stage-key-question": "stage, with the key \"question?mark.txt\"",
+ "operations/azure-hns/stage-key-space": "stage, with the key \"space name.txt\"",
+ "operations/azure-hns/stage-key-trailing-slash": "stage, with the key \"trailing-slash/\"",
+ "operations/azure-hns/stage-mixed-length-id": "stage mixed length id",
+ "operations/azure-hns/stage-mixed-length-id-code-in-body": "stage mixed length id, with the error code only in the XML body",
+ "operations/azure-hns/stage-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure-hns/staged-absent": "staged absent",
+ "operations/azure-hns/staged-absent-code-in-body": "staged absent, with the error code only in the XML body",
+ "operations/azure-hns/staged-after-commit": "staged after commit",
+ "operations/azure-hns/staged-after-replacement": "staged after replacement",
+ "operations/azure-hns/staged-after-whole-write": "staged after whole write",
+ "operations/azure-hns/staged-committed-empty": "staged committed empty",
+ "operations/azure-hns/staged-committed-nothing": "staged committed nothing",
+ "operations/azure-hns/staged-escaped-id": "staged escaped id",
+ "operations/azure-hns/staged-replacement": "staged replacement",
+ "operations/azure-hns/staged-uncommitted": "staged uncommitted",
+ "operations/azure-hns/staged-uncommitted-only": "staged uncommitted only",
+ "operations/azure-hns/upload-pages": "Write the first page of a page blob, which an HNS account does not support",
+ "operations/azure-hns/upload-pages-unaligned": "Refuse a page write that does not start on a 512-byte boundary, which an HNS account does not support",
+ "operations/azure/abort-copy": "Abort a pending copy by its copy ID, with x-ms-copy-action: abort",
+ "operations/azure/abort-copy-finished": "Report an abort of a copy that has finished as an error, 409 NoPendingCopyOperation",
+ "operations/azure/append-block": "Append a block to an append blob and report its offset",
+ "operations/azure/append-block-at-wrong-position": "Refuse an append whose position condition does not match the blob length",
+ "operations/azure/append-block-to-block-blob": "Refuse an append to a block blob",
+ "operations/azure/commit": "commit",
+ "operations/azure/commit-container-missing": "commit container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/azure/commit-content-properties": "Commit a block list with content properties, sent as x-ms-blob-content-type, -language, -disposition and x-ms-blob-cache-control",
+ "operations/azure/commit-declaring-md5": "commit declaring md5",
+ "operations/azure/commit-duplicate-id": "commit duplicate id",
+ "operations/azure/commit-escaped-id": "commit escaped id",
+ "operations/azure/commit-key-double-slash": "commit, with the key \"double//slash.txt\"",
+ "operations/azure/commit-key-hash": "commit, with the key \"hash#tag.txt\"",
+ "operations/azure/commit-key-non-ascii": "commit, with the key \"café/雪.txt\"",
+ "operations/azure/commit-key-percent": "commit, with the key \"percent%20.txt\"",
+ "operations/azure/commit-key-plus": "commit, with the key \"plus+plus.txt\"",
+ "operations/azure/commit-key-question": "commit, with the key \"question?mark.txt\"",
+ "operations/azure/commit-key-space": "commit, with the key \"space name.txt\"",
+ "operations/azure/commit-key-trailing-slash": "commit, with the key \"trailing-slash/\"",
+ "operations/azure/commit-lost-the-race-to-create": "commit lost the race to create",
+ "operations/azure/commit-nothing": "commit nothing",
+ "operations/azure/commit-over-whole-object": "commit over whole object",
+ "operations/azure/commit-precondition-failed": "commit precondition failed",
+ "operations/azure/commit-refused": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure/commit-reordered": "commit reordered",
+ "operations/azure/commit-replacement": "commit replacement",
+ "operations/azure/commit-unstaged-id": "commit unstaged id",
+ "operations/azure/commit-unstaged-id-code-in-body": "commit unstaged id, with the error code only in the XML body",
+ "operations/azure/commit-with-tags": "Commit a block list with blob index tags, sent URL-encoded in x-ms-tags",
+ "operations/azure/commit-with-tier": "Commit a block list into an access tier, named in x-ms-access-tier",
+ "operations/azure/copy": "Copy an object to another key in the same container",
+ "operations/azure/copy-across-containers": "Copy a blob from another container of the same account, which x-ms-copy-source names in its URL",
+ "operations/azure/copy-if-none-match-exists": "Report a copy with If-None-Match: * onto a blob that exists as a failed condition on the destination",
+ "operations/azure/copy-missing-source": "Refuse a copy whose source does not exist",
+ "operations/azure/copy-pending": "Report a copy that Azure answers as pending with its copy ID, so that a caller can follow it with a HEAD or abort it",
+ "operations/azure/copy-replace-metadata": "Copy a blob with new metadata, which replaces all of the source's. A copy that names no metadata keeps the source's",
+ "operations/azure/copy-source-if-match": "Copy a blob only if the source still has this ETag, named in x-ms-source-if-match",
+ "operations/azure/copy-source-if-match-failed": "Report a copy whose source does not have the ETag in x-ms-source-if-match as a failed condition, 412 SourceConditionNotMet",
+ "operations/azure/copy-source-if-unmodified-since-failed": "Report a copy whose source changed after the time in x-ms-source-if-unmodified-since as a failed condition, 412 SourceConditionNotMet",
+ "operations/azure/copy-source-key-encoded": "Copy from a key with a space, +, %, é, ? and #. The x-ms-copy-source URL percent-encodes every byte of the key outside letters, digits, -._~ and /",
+ "operations/azure/copy-source-version": "Copy an earlier version of a blob, named by versionid in the x-ms-copy-source URL",
+ "operations/azure/copy-sync": "Copy a blob with Copy Blob From URL, x-ms-requires-sync: true, which answers once the copy is done. The source must be readable by URL: by a SAS, or by a bearer token in x-ms-copy-source-authorization",
+ "operations/azure/copy-tier": "Copy a blob into another access tier, named in x-ms-access-tier",
+ "operations/azure/create-append": "Create an empty append blob",
+ "operations/azure/create-page": "Create a page blob of 1,024 bytes",
+ "operations/azure/delete-accepted": "delete accepted",
+ "operations/azure/delete-accepted-key-double-slash": "delete accepted, with the key \"double//slash.txt\"",
+ "operations/azure/delete-accepted-key-hash": "delete accepted, with the key \"hash#tag.txt\"",
+ "operations/azure/delete-accepted-key-non-ascii": "delete accepted, with the key \"café/雪.txt\"",
+ "operations/azure/delete-accepted-key-percent": "delete accepted, with the key \"percent%20.txt\"",
+ "operations/azure/delete-accepted-key-plus": "delete accepted, with the key \"plus+plus.txt\"",
+ "operations/azure/delete-accepted-key-question": "delete accepted, with the key \"question?mark.txt\"",
+ "operations/azure/delete-accepted-key-space": "delete accepted, with the key \"space name.txt\"",
+ "operations/azure/delete-accepted-key-trailing-slash": "delete accepted, with the key \"trailing-slash/\"",
+ "operations/azure/delete-container-missing": "delete container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/azure/delete-current-version": "delete current version",
+ "operations/azure/delete-if-match-current": "delete if match current",
+ "operations/azure/delete-if-unmodified-since-past": "Refuse a delete with 412 when the object changed after If-Unmodified-Since",
+ "operations/azure/delete-leased-if-match-without-lease-id": "Refuse to delete a leased object whose If-Match holds but that names no lease ID",
+ "operations/azure/delete-leased-without-lease-id": "Refuse to delete a leased object without its lease ID",
+ "operations/azure/delete-many": "Delete several objects in one batch and report each result",
+ "operations/azure/delete-many-256": "Delete 256 keys in one batch, the most Azure takes",
+ "operations/azure/delete-many-257": "Report a batch of 257 deletions, one more than Azure takes, as an error. Azure answers 202 with one part and no Content-ID, 400 ExceedsMaxBatchRequestCount, for the whole batch, not one part per deletion. A client may refuse it before sending",
+ "operations/azure/delete-many-answers-out-of-order": "Match each part of a batch answer to its deletion by Content-ID, which links them, not by position. Azure has answered every recorded batch in order, up to 256 parts; this answer is written by hand",
+ "operations/azure/delete-many-container-missing": "Report a batch in a missing container, which Azure answers 202 with 404 ContainerNotFound for each deletion, as that error for each key and none deleted, or as one error of kind container_not_found",
+ "operations/azure/delete-many-denied": "Report each deletion of a batch that Azure refuses inside its 202 answer, here every one with 403 AuthorizationPermissionMismatch, as that key's error, not as deleted",
+ "operations/azure/delete-many-lf-line-endings": "Read a batch answer whose lines end in LF alone correctly, or report it as an error, but never half-read it. Azure has not been seen to send it: HTTP and multipart require CRLF. This answer is the recorded one with every CR removed",
+ "operations/azure/delete-many-server-busy": "Report a batch that Azure answers as a whole with 503 ServerBusy as an error, never as deleted keys. A client may retry up to five times first",
+ "operations/azure/delete-many-unauthenticated": "Report a batch whose token Azure does not accept as one error for the whole batch, as Azure answers it, not as an answer per key",
+ "operations/azure/delete-many-without-content-id": "Report a batch answer whose parts carry no Content-ID as an error. Without one, only the order of the parts would link a result to its key, and a guess could report one key deleted when another failed. Azure echoes the Content-ID of every subrequest; this answer is the recorded one with them removed",
+ "operations/azure/delete-missing": "delete missing. A client reports it as not_found: the object is absent",
+ "operations/azure/delete-precondition-failed": "delete precondition failed",
+ "operations/azure/delete-precondition-failed-code-in-body": "delete precondition failed, with the error code only in the XML body",
+ "operations/azure/delete-previous-version": "delete previous version",
+ "operations/azure/delete-refused": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure/delete-refused-for-snapshots": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure/delete-server-busy": "Report a 503 ServerBusy answer as an error, after at most 5 retries",
+ "operations/azure/delete-snapshot": "delete snapshot",
+ "operations/azure/delete-snapshots-only": "delete snapshots only",
+ "operations/azure/delete-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure/delete-versioned-object": "delete versioned object",
+ "operations/azure/delete-with-snapshots": "delete with snapshots",
+ "operations/azure/get-after-snapshots-deleted": "get after snapshots deleted",
+ "operations/azure/get-body-cut-short": "Report a body that ends before its Content-Length as an error, or resume it, but never return the short body",
+ "operations/azure/get-committed": "get committed",
+ "operations/azure/get-committed-nothing": "get committed nothing",
+ "operations/azure/get-committed-over-whole-object": "get committed over whole object",
+ "operations/azure/get-container-missing": "get container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/azure/get-content-encoding-gzip": "Return the stored gzip bytes and Content-Encoding: gzip without decoding them",
+ "operations/azure/get-content-properties": "Return the stored content properties from a GET",
+ "operations/azure/get-current-version": "get current version",
+ "operations/azure/get-current-version-of-deleted-object": "get current version of deleted object",
+ "operations/azure/get-deleted-snapshot": "get deleted snapshot",
+ "operations/azure/get-deleted-versioned-object": "get deleted versioned object",
+ "operations/azure/get-duplicate-id": "get duplicate id",
+ "operations/azure/get-empty": "get empty",
+ "operations/azure/get-if-match-current": "get if match current",
+ "operations/azure/get-if-modified-since-future": "Report 304 when If-Modified-Since names a future date, which Azure does not ignore",
+ "operations/azure/get-if-modified-since-past": "Read an object modified since a past date",
+ "operations/azure/get-if-none-match-other": "get if none match other",
+ "operations/azure/get-if-unmodified-since-past": "Refuse a read with 412 when the object changed after If-Unmodified-Since",
+ "operations/azure/get-key-with-hash": "get key with hash",
+ "operations/azure/get-key-with-non-ascii": "get key unicode",
+ "operations/azure/get-key-with-percent": "get key with percent",
+ "operations/azure/get-key-with-plus": "get key with plus",
+ "operations/azure/get-key-with-question": "get key question",
+ "operations/azure/get-key-with-separators": "get key separators",
+ "operations/azure/get-key-with-space": "get key space",
+ "operations/azure/get-metadata": "get metadata",
+ "operations/azure/get-metadata-empty-value": "get metadata empty value",
+ "operations/azure/get-metadata-ignores-unknown-headers": "Surface user metadata; unknown headers must not become metadata.",
+ "operations/azure/get-metadata-of-snapshot": "get metadata of snapshot",
+ "operations/azure/get-metadata-replaced": "get metadata replaced",
+ "operations/azure/get-missing": "get missing. A client reports it as not_found: the object is absent",
+ "operations/azure/get-missing-code-in-body": "get missing, with the error code only in the XML body. A client reports it as not_found: the object is absent",
+ "operations/azure/get-noise-tolerance": "get noise tolerance",
+ "operations/azure/get-not-modified": "get not modified",
+ "operations/azure/get-page-ranges": "List the written ranges of a page blob",
+ "operations/azure/get-precondition-failed": "get precondition failed",
+ "operations/azure/get-previous-version": "get previous version",
+ "operations/azure/get-previous-version-of-deleted-object": "get previous version of deleted object",
+ "operations/azure/get-range": "get range",
+ "operations/azure/get-range-empty": "Read a range of no bytes, whose start equals its end. HTTP has no form for it: bytes=5-4 is inverted, and the service ignores it and sends the whole object. A client may refuse it instead",
+ "operations/azure/get-range-inverted": "get range inverted",
+ "operations/azure/get-range-not-satisfiable": "get range not satisfiable",
+ "operations/azure/get-range-of-empty-object": "Report a range read of an empty object as 416 InvalidRange: no range of it can be satisfied, not even its first byte",
+ "operations/azure/get-range-open": "get range open",
+ "operations/azure/get-range-past-the-end": "Read a range that ends past the object, which the service clips to the object's end. Report the window it served from Content-Range, bytes 28-29/30, so that the caller sees the range was clipped",
+ "operations/azure/get-range-single-byte": "get range single byte",
+ "operations/azure/get-reordered": "get reordered",
+ "operations/azure/get-replacement": "get replacement",
+ "operations/azure/get-server-busy": "Report a 503 ServerBusy answer as an error, after at most 5 retries",
+ "operations/azure/get-snapshot": "get snapshot",
+ "operations/azure/get-staged-only": "get staged only",
+ "operations/azure/get-suffix": "get suffix",
+ "operations/azure/get-suffix-longer-than-object": "get suffix longer than object",
+ "operations/azure/get-tags": "Read the tags of an object",
+ "operations/azure/get-tags-none": "Report no blob index tags for a blob without any, which Azure answers with an empty TagSet",
+ "operations/azure/get-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure/get-unknown-snapshot": "get unknown snapshot",
+ "operations/azure/get-unknown-version": "get unknown version",
+ "operations/azure/get-whole": "get whole",
+ "operations/azure/get-with-staged-blocks": "get with staged blocks",
+ "operations/azure/get-xml-looking": "get xml looking",
+ "operations/azure/head": "head",
+ "operations/azure/head-access-tier": "Report a blob's access tier, which Azure sends in x-ms-access-tier",
+ "operations/azure/head-committed": "head committed",
+ "operations/azure/head-committed-declaring-md5": "head committed declaring md5",
+ "operations/azure/head-container-missing": "Report a HEAD of a blob in a missing container as container_not_found. Azure answers 404 without a body, but names ContainerNotFound in x-ms-error-code",
+ "operations/azure/head-content-properties": "Return the stored content properties from a HEAD",
+ "operations/azure/head-copy-status": "Report the copy that wrote a blob, its x-ms-copy-status and x-ms-copy-id, from a HEAD of the blob",
+ "operations/azure/head-if-unmodified-since-past": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since",
+ "operations/azure/head-key-double-slash": "head, with the key \"double//slash.txt\"",
+ "operations/azure/head-key-hash": "head, with the key \"hash#tag.txt\"",
+ "operations/azure/head-key-non-ascii": "head, with the key \"café/雪.txt\"",
+ "operations/azure/head-key-percent": "head, with the key \"percent%20.txt\"",
+ "operations/azure/head-key-plus": "head, with the key \"plus+plus.txt\"",
+ "operations/azure/head-key-question": "head, with the key \"question?mark.txt\"",
+ "operations/azure/head-key-space": "head, with the key \"space name.txt\"",
+ "operations/azure/head-key-trailing-slash": "head, with the key \"trailing-slash/\"",
+ "operations/azure/head-metadata": "head metadata",
+ "operations/azure/head-missing": "head missing. A client reports it as not_found: the object is absent",
+ "operations/azure/head-previous-version": "head previous version",
+ "operations/azure/head-snapshot": "head snapshot",
+ "operations/azure/head-written-with-crc64": "head written with crc64",
+ "operations/azure/head-written-with-md5": "head written with md5",
+ "operations/azure/lease-acquire": "Acquire a lease on an object with a proposed lease ID",
+ "operations/azure/lease-acquire-leased": "Refuse a second lease while another lease holds the object",
+ "operations/azure/lease-break": "Break a lease at once",
+ "operations/azure/lease-release": "Release a lease",
+ "operations/azure/list-after-delete-with-versions": "list after delete with versions",
+ "operations/azure/list-all-empty": "list empty",
+ "operations/azure/list-all-order": "list order",
+ "operations/azure/list-bad-marker": "list bad marker",
+ "operations/azure/list-bad-marker-code-in-body": "list bad marker, with the error code only in the XML body",
+ "operations/azure/list-container-missing": "list container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/azure/list-delimited": "list delimited",
+ "operations/azure/list-empty": "list empty",
+ "operations/azure/list-encoded-names": "list encoded names",
+ "operations/azure/list-first-page": "list first page",
+ "operations/azure/list-key-equal-to-prefix": "list key equal to prefix",
+ "operations/azure/list-key-equal-to-prefix-delimited": "list key equal to prefix delimited",
+ "operations/azure/list-many-segments": "list many segments",
+ "operations/azure/list-max-keys-zero": "list max keys zero",
+ "operations/azure/list-metadata": "list metadata",
+ "operations/azure/list-next-page": "list next page",
+ "operations/azure/list-operation-timed-out": "Report a 500 OperationTimedOut answer as an error, after at most 5 retries",
+ "operations/azure/list-order": "list order",
+ "operations/azure/list-order-delimited": "list order delimited",
+ "operations/azure/list-other-delimiter": "Send the delimiter the caller names. A flat account groups blob names at any delimiter, not only /; here a- groups a-1.txt and a-2.txt",
+ "operations/azure/list-page": "list page",
+ "operations/azure/list-page-size-one": "A page of zero entries is out of range, but a page of one is not. Send a page size of 1 and report the one entry and the continuation token.",
+ "operations/azure/list-pagination": "list pagination",
+ "operations/azure/list-prefix-without-slash": "list prefix without slash",
+ "operations/azure/list-separator-keys": "list separator keys",
+ "operations/azure/list-separator-keys-delimited": "list separator keys delimited",
+ "operations/azure/list-snapshots": "list snapshots",
+ "operations/azure/list-snapshots-after-delete": "list snapshots after delete",
+ "operations/azure/list-snapshots-after-snapshots-deleted": "list snapshots after snapshots deleted",
+ "operations/azure/list-snapshots-and-versions": "list snapshots and versions",
+ "operations/azure/list-staged-only": "list staged only",
+ "operations/azure/list-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure/list-versions": "list versions",
+ "operations/azure/list-versions-of-deleted-object": "list versions of deleted object",
+ "operations/azure/list-written-with-hashes": "list written with hashes",
+ "operations/azure/list-xml-escaped": "list xml escaped",
+ "operations/azure/put-container-missing": "put container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/azure/put-content-disposition-non-ascii": "Write a Content-Disposition whose filename is outside ASCII. Azure refuses a disposition byte outside ASCII with 400 InvalidMetadata, so send an RFC 6266 filename*, which any reader decodes, or refuse the value",
+ "operations/azure/put-content-encoding-gzip": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged",
+ "operations/azure/put-content-properties": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write",
+ "operations/azure/put-content-type-edge-spaces": "Write a content type with spaces at either end, which HTTP drops, so the service stores it trimmed. A client may refuse it",
+ "operations/azure/put-content-type-non-ascii": "Write a Content-Type with a parameter outside ASCII as its UTF-8 bytes. A flat account returns them as it got them, so they read back",
+ "operations/azure/put-crc64-mismatch": "put crc64 mismatch",
+ "operations/azure/put-created": "put created",
+ "operations/azure/put-created-empty": "put created empty",
+ "operations/azure/put-created-key-double-slash": "put created, with the key \"double//slash.txt\"",
+ "operations/azure/put-created-key-hash": "put created, with the key \"hash#tag.txt\"",
+ "operations/azure/put-created-key-non-ascii": "put created, with the key \"café/雪.txt\"",
+ "operations/azure/put-created-key-percent": "put created, with the key \"percent%20.txt\"",
+ "operations/azure/put-created-key-plus": "put created, with the key \"plus+plus.txt\"",
+ "operations/azure/put-created-key-question": "put created, with the key \"question?mark.txt\"",
+ "operations/azure/put-created-key-space": "put created, with the key \"space name.txt\"",
+ "operations/azure/put-created-key-trailing-slash": "put created, with the key \"trailing-slash/\"",
+ "operations/azure/put-first-version": "put first version",
+ "operations/azure/put-from-url": "Write a block blob from the bytes at a URL with Put Blob From URL: a PUT with x-ms-blob-type: BlockBlob, x-ms-copy-source and no body, which answers once it is written",
+ "operations/azure/put-if-match-current": "put if match current",
+ "operations/azure/put-if-none-match-missing": "put if none match missing",
+ "operations/azure/put-if-unmodified-since-past": "Refuse a write with 412 when the object changed after If-Unmodified-Since",
+ "operations/azure/put-internal-error": "Report a 500 InternalError answer as an error, after at most 5 retries",
+ "operations/azure/put-key-1024": "put key 1024",
+ "operations/azure/put-key-1025": "put key 1025",
+ "operations/azure/put-key-under-object": "put key under object",
+ "operations/azure/put-leased-if-match-without-lease-id": "Refuse a write to a leased object whose If-Match holds but that names no lease ID",
+ "operations/azure/put-leased-with-lease-id": "Write to a leased object with its lease ID",
+ "operations/azure/put-leased-without-lease-id": "Refuse a write to a leased object that names no lease ID",
+ "operations/azure/put-lost-the-race-to-create": "put lost the race to create",
+ "operations/azure/put-md5-mismatch": "put md5 mismatch",
+ "operations/azure/put-metadata": "put metadata",
+ "operations/azure/put-metadata-empty-value": "put metadata empty value",
+ "operations/azure/put-metadata-identifier-name": "An Azure metadata name must be a C# identifier, which may start with an underscore and hold digits. Send _a1; only a name that is no identifier may be refused.",
+ "operations/azure/put-metadata-invalid-name": "put metadata invalid name",
+ "operations/azure/put-metadata-non-ascii-value": "put metadata non ascii value",
+ "operations/azure/put-metadata-replaced": "put metadata replaced",
+ "operations/azure/put-over-snapshotted": "put over snapshotted",
+ "operations/azure/put-overwrite": "put overwrite",
+ "operations/azure/put-precondition-failed": "put precondition failed",
+ "operations/azure/put-precondition-failed-code-in-body": "put precondition failed, with the error code only in the XML body",
+ "operations/azure/put-refused": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure/put-second-version": "put second version",
+ "operations/azure/put-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure/put-with-both-hashes": "Reject simultaneous transactional MD5 and CRC64",
+ "operations/azure/put-with-crc64": "put with crc64",
+ "operations/azure/put-with-md5": "put with md5",
+ "operations/azure/put-with-tags": "Write an object with tags",
+ "operations/azure/put-with-tags-duplicate-key": "Report a write whose x-ms-tags names one key twice as an error. A client may refuse it, or report it unsupported where its API cannot repeat a key",
+ "operations/azure/put-with-tags-special-characters": "Write a blob with an index tag that holds a space and each of + - = . _ : /, percent-encoded in x-ms-tags",
+ "operations/azure/put-with-tier": "Write an object straight into the Cool access tier",
+ "operations/azure/set-tags": "Replace the tags of an object",
+ "operations/azure/set-tags-10-tags": "Set 10 tags, the most an object takes",
+ "operations/azure/set-tags-11-tags": "Report 11 tags, one more than an object takes, as an error. A client may refuse them",
+ "operations/azure/set-tags-duplicate-key": "Report blob index tags that name one key twice as an error. A client may refuse them, or report them unsupported where its API cannot repeat a key",
+ "operations/azure/set-tags-invalid-character": "Report a blob index tag key with @, which Azure does not allow, as an error. A client may refuse it",
+ "operations/azure/set-tags-key-128": "Set a tag whose key has 128 characters, the longest a key may be",
+ "operations/azure/set-tags-key-129": "Report a tag key of 129 characters, one more than a key may have, as an error. A client may refuse it",
+ "operations/azure/set-tags-special-characters": "Set a blob index tag with a space and each of + - = . _ : /, which Azure allows, escaped as XML text",
+ "operations/azure/set-tags-value-256": "Set a tag whose value has 256 characters, the longest a value may be",
+ "operations/azure/set-tags-value-257": "Report a tag value of 257 characters, one more than a value may have, as an error. A client may refuse it",
+ "operations/azure/set-tier-cool": "Move an object to the Cool access tier",
+ "operations/azure/set-tier-rehydrate": "Report a tier change that Azure accepts with 202, as it does when an archived blob starts to rehydrate, as a success",
+ "operations/azure/set-tier-unknown": "Refuse an access tier the service does not have",
+ "operations/azure/snapshot": "snapshot",
+ "operations/azure/stage": "stage",
+ "operations/azure/stage-empty": "stage empty",
+ "operations/azure/stage-escaped-id": "stage escaped id",
+ "operations/azure/stage-from-url": "Stage a block from bytes 0 to 2 at a URL with Put Block From URL, the range named in x-ms-source-range with an inclusive end, as bytes=0-2",
+ "operations/azure/stage-id-64-bytes": "A block ID decodes to at most 64 bytes, and Azure stages a block whose ID decodes to exactly 64. Send it; only a longer ID may be refused.",
+ "operations/azure/stage-id-too-long": "stage id too long",
+ "operations/azure/stage-key-double-slash": "stage, with the key \"double//slash.txt\"",
+ "operations/azure/stage-key-hash": "stage, with the key \"hash#tag.txt\"",
+ "operations/azure/stage-key-non-ascii": "stage, with the key \"café/雪.txt\"",
+ "operations/azure/stage-key-percent": "stage, with the key \"percent%20.txt\"",
+ "operations/azure/stage-key-plus": "stage, with the key \"plus+plus.txt\"",
+ "operations/azure/stage-key-question": "stage, with the key \"question?mark.txt\"",
+ "operations/azure/stage-key-space": "stage, with the key \"space name.txt\"",
+ "operations/azure/stage-key-trailing-slash": "stage, with the key \"trailing-slash/\"",
+ "operations/azure/stage-mixed-length-id": "stage mixed length id",
+ "operations/azure/stage-mixed-length-id-code-in-body": "stage mixed length id, with the error code only in the XML body",
+ "operations/azure/stage-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/azure/staged-absent": "staged absent",
+ "operations/azure/staged-absent-code-in-body": "staged absent, with the error code only in the XML body",
+ "operations/azure/staged-after-commit": "staged after commit",
+ "operations/azure/staged-after-replacement": "staged after replacement",
+ "operations/azure/staged-after-whole-write": "staged after whole write",
+ "operations/azure/staged-committed-empty": "staged committed empty",
+ "operations/azure/staged-committed-nothing": "staged committed nothing",
+ "operations/azure/staged-escaped-id": "staged escaped id",
+ "operations/azure/staged-replacement": "staged replacement",
+ "operations/azure/staged-uncommitted": "staged uncommitted",
+ "operations/azure/staged-uncommitted-only": "staged uncommitted only",
+ "operations/azure/upload-pages": "Write the first page of a page blob",
+ "operations/azure/upload-pages-unaligned": "Refuse a page write that does not start on a 512-byte boundary",
+ "operations/s3-express/abort": "abort",
+ "operations/s3-express/abort-after-commit": "abort after commit",
+ "operations/s3-express/abort-unknown-upload": "abort unknown upload",
+ "operations/s3-express/commit": "commit",
+ "operations/s3-express/commit-200-internal-error": "Report a completion answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
+ "operations/s3-express/commit-after-abort": "commit after abort",
+ "operations/s3-express/commit-key-double-slash": "commit, with the key \"double//slash.txt\"",
+ "operations/s3-express/commit-key-hash": "commit, with the key \"hash#tag.txt\"",
+ "operations/s3-express/commit-key-non-ascii": "commit, with the key \"café/雪.txt\"",
+ "operations/s3-express/commit-key-percent": "commit, with the key \"percent%20.txt\"",
+ "operations/s3-express/commit-key-plus": "commit, with the key \"plus+plus.txt\"",
+ "operations/s3-express/commit-key-question": "commit, with the key \"question?mark.txt\"",
+ "operations/s3-express/commit-key-space": "commit, with the key \"space name.txt\"",
+ "operations/s3-express/commit-key-trailing-slash": "commit, with the key \"trailing-slash/\"",
+ "operations/s3-express/commit-lost-the-race-to-create": "commit lost the race to create",
+ "operations/s3-express/commit-nothing": "commit nothing",
+ "operations/s3-express/commit-object-size": "Send the object size the caller expects in x-amz-mp-object-size; a completion whose parts add up to it succeeds",
+ "operations/s3-express/commit-object-size-mismatch": "Report S3's refusal of a completion whose parts do not add up to the object size stated in x-amz-mp-object-size",
+ "operations/s3-express/commit-one-empty-part": "Complete an upload of one empty part, which writes an empty object; a client that refuses a completion of no parts writes an empty object this way",
+ "operations/s3-express/commit-out-of-order": "commit out of order",
+ "operations/s3-express/commit-part-too-small": "commit part too small",
+ "operations/s3-express/commit-precondition-failed": "commit precondition failed",
+ "operations/s3-express/commit-single-small-part": "commit single small part",
+ "operations/s3-express/commit-subset": "commit subset",
+ "operations/s3-express/commit-unstaged-part": "commit unstaged part",
+ "operations/s3-express/commit-wrong-etag": "commit wrong etag",
+ "operations/s3-express/complete-multipart-200-error": "complete multipart 200 error",
+ "operations/s3-express/copy": "Copy an object to another key in the same bucket",
+ "operations/s3-express/copy-200-internal-error": "Report a copy answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
+ "operations/s3-express/copy-missing-source": "Refuse a copy whose source does not exist",
+ "operations/s3-express/copy-onto-itself": "Copy an object onto itself without changing it. A directory bucket accepts it, where a general-purpose bucket answers 400 InvalidRequest",
+ "operations/s3-express/copy-onto-itself-replace-metadata": "Copy an object onto itself to replace its metadata, which S3 accepts with x-amz-metadata-directive: REPLACE",
+ "operations/s3-express/copy-replace-metadata": "Copy an object with new metadata and a new content type. S3 keeps the source's unless x-amz-metadata-directive is REPLACE, so a client that sets either must send it",
+ "operations/s3-express/copy-source-if-match": "Copy an object only if the source still has this ETag, named in x-amz-copy-source-if-match",
+ "operations/s3-express/copy-source-if-match-failed": "Report a copy whose source does not have the ETag in x-amz-copy-source-if-match as a failed condition. S3 answers 412 PreconditionFailed and writes nothing",
+ "operations/s3-express/copy-source-if-modified-since": "Copy an object only if the source changed after a time, named in x-amz-copy-source-if-modified-since as an HTTP date",
+ "operations/s3-express/copy-source-if-none-match-failed": "Report a copy whose source has the ETag in x-amz-copy-source-if-none-match as a failed condition. A copy answers 412 PreconditionFailed where a read answers 304",
+ "operations/s3-express/copy-source-if-unmodified-since-failed": "Report a copy whose source changed after the time in x-amz-copy-source-if-unmodified-since as a failed condition, 412 PreconditionFailed",
+ "operations/s3-express/copy-source-key-encoded": "Copy from a key with a space, +, %, é, ? and #. x-amz-copy-source percent-encodes every byte of the key outside letters, digits, -._~ and /",
+ "operations/s3-express/delete-accepted": "delete accepted",
+ "operations/s3-express/delete-accepted-key-double-slash": "delete accepted, with the key \"double//slash.txt\"",
+ "operations/s3-express/delete-accepted-key-hash": "delete accepted, with the key \"hash#tag.txt\"",
+ "operations/s3-express/delete-accepted-key-non-ascii": "delete accepted, with the key \"café/雪.txt\"",
+ "operations/s3-express/delete-accepted-key-percent": "delete accepted, with the key \"percent%20.txt\"",
+ "operations/s3-express/delete-accepted-key-plus": "delete accepted, with the key \"plus+plus.txt\"",
+ "operations/s3-express/delete-accepted-key-question": "delete accepted, with the key \"question?mark.txt\"",
+ "operations/s3-express/delete-accepted-key-space": "delete accepted, with the key \"space name.txt\"",
+ "operations/s3-express/delete-accepted-key-trailing-slash": "delete accepted, with the key \"trailing-slash/\"",
+ "operations/s3-express/delete-if-match-current": "delete if match current",
+ "operations/s3-express/delete-many": "Delete several objects in one request and report each result",
+ "operations/s3-express/delete-many-1000": "Delete 1,000 keys in one DeleteObjects request, the most S3 takes",
+ "operations/s3-express/delete-many-1001": "Report a DeleteObjects request of 1,001 keys, one more than S3 takes, as an error. A client may refuse it before sending",
+ "operations/s3-express/delete-many-errors": "Report each key that S3 lists as an Error in a DeleteObjects answer, here AccessDenied, as that key's error, and the others as deleted",
+ "operations/s3-express/delete-missing": "delete missing",
+ "operations/s3-express/delete-precondition-failed": "delete precondition failed",
+ "operations/s3-express/delete-slow-down": "Report a 503 SlowDown answer as an error, after at most 5 retries",
+ "operations/s3-express/get-before-commit": "get before commit",
+ "operations/s3-express/get-body-cut-short": "Report a body that ends before its Content-Length as an error, or resume it, but never return the short body",
+ "operations/s3-express/get-committed-tail": "get committed tail",
+ "operations/s3-express/get-content-properties": "Return the stored content properties from a GET",
+ "operations/s3-express/get-empty": "get empty",
+ "operations/s3-express/get-if-match-current": "get if match current",
+ "operations/s3-express/get-if-modified-since-future": "Read an object when If-Modified-Since names a future date",
+ "operations/s3-express/get-if-modified-since-invalid": "Read an object when If-Modified-Since is not an HTTP date, which S3 ignores. A client may refuse the date instead",
+ "operations/s3-express/get-if-modified-since-past": "Read an object modified since a past date",
+ "operations/s3-express/get-if-modified-since-unchanged": "Report an object not changed since the If-Modified-Since date as 304 Not Modified, not as an error of the service or an empty object",
+ "operations/s3-express/get-if-none-match-other": "get if none match other",
+ "operations/s3-express/get-if-unmodified-since-past": "Refuse a read with 412 when the object changed after If-Unmodified-Since",
+ "operations/s3-express/get-key-with-hash": "get key with hash",
+ "operations/s3-express/get-key-with-non-ascii": "get key unicode",
+ "operations/s3-express/get-key-with-percent": "get key with percent",
+ "operations/s3-express/get-key-with-plus": "get key with plus",
+ "operations/s3-express/get-key-with-question": "get key question",
+ "operations/s3-express/get-key-with-separators": "get key separators",
+ "operations/s3-express/get-key-with-space": "get key with space",
+ "operations/s3-express/get-metadata": "get metadata",
+ "operations/s3-express/get-metadata-empty-value": "get metadata empty value",
+ "operations/s3-express/get-metadata-hyphen-name": "get metadata hyphen name",
+ "operations/s3-express/get-metadata-ignores-unknown-headers": "Surface user metadata; unknown headers must not become metadata.",
+ "operations/s3-express/get-metadata-malformed-encoded-word": "Leave a value that only looks like an RFC 2047 encoded word as it is: =ZZ is no hexadecimal byte.",
+ "operations/s3-express/get-metadata-non-ascii-value": "A directory bucket returns an RFC 2047 encoded word as it was stored. A client that encodes on a write decodes it to é; one that keeps metadata to ASCII returns it as stored.",
+ "operations/s3-express/get-metadata-outside-latin-1": "A directory bucket returns a base64 RFC 2047 encoded word as it was stored. A client that encodes on a write decodes it to 雪; one that keeps metadata to ASCII returns it as stored.",
+ "operations/s3-express/get-metadata-punctuation-name": "Report a metadata name that holds any character of an HTTP token.",
+ "operations/s3-express/get-metadata-replaced": "get metadata replaced",
+ "operations/s3-express/get-metadata-split-encoded-words": "Decode a long metadata value that a directory bucket returns as one encoded word",
+ "operations/s3-express/get-missing": "get missing. A client reports it as not_found: the object is absent",
+ "operations/s3-express/get-noise-tolerance": "get noise tolerance",
+ "operations/s3-express/get-not-modified": "get not modified",
+ "operations/s3-express/get-precondition-failed": "get precondition failed",
+ "operations/s3-express/get-range": "get range",
+ "operations/s3-express/get-range-empty": "Read a range of no bytes, whose start equals its end. HTTP has no form for it: bytes=5-4 is inverted, and the service ignores it and sends the whole object. A client may refuse it instead",
+ "operations/s3-express/get-range-inverted": "get range inverted",
+ "operations/s3-express/get-range-not-satisfiable": "get range not satisfiable",
+ "operations/s3-express/get-range-of-empty-object": "Report a range read of an empty object as 416 InvalidRange: no range of it can be satisfied, not even its first byte",
+ "operations/s3-express/get-range-open": "get range open",
+ "operations/s3-express/get-range-past-the-end": "Read a range that ends past the object, which the service clips to the object's end. Report the window it served from Content-Range, bytes 28-29/30, so that the caller sees the range was clipped",
+ "operations/s3-express/get-range-single-byte": "get range single byte",
+ "operations/s3-express/get-replaced": "get replaced",
+ "operations/s3-express/get-session-expired": "Renew a session whose Expiration has passed before using it: ask CreateSession again, and sign the GET with the second session",
+ "operations/s3-express/get-single-part": "get single part",
+ "operations/s3-express/get-slow-down": "Report a 503 SlowDown answer as an error, after at most 5 retries",
+ "operations/s3-express/get-suffix": "get suffix",
+ "operations/s3-express/get-suffix-longer-than-object": "get suffix longer than object",
+ "operations/s3-express/get-whole": "get whole",
+ "operations/s3-express/get-xml-looking": "get xml looking",
+ "operations/s3-express/head": "head",
+ "operations/s3-express/head-committed": "head committed",
+ "operations/s3-express/head-content-properties": "Return the stored content properties from a HEAD",
+ "operations/s3-express/head-if-unmodified-since-past": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since",
+ "operations/s3-express/head-key-double-slash": "head, with the key \"double//slash.txt\"",
+ "operations/s3-express/head-key-hash": "head, with the key \"hash#tag.txt\"",
+ "operations/s3-express/head-key-non-ascii": "head, with the key \"café/雪.txt\"",
+ "operations/s3-express/head-key-percent": "head, with the key \"percent%20.txt\"",
+ "operations/s3-express/head-key-plus": "head, with the key \"plus+plus.txt\"",
+ "operations/s3-express/head-key-question": "head, with the key \"question?mark.txt\"",
+ "operations/s3-express/head-key-space": "head, with the key \"space name.txt\"",
+ "operations/s3-express/head-key-trailing-slash": "head, with the key \"trailing-slash/\"",
+ "operations/s3-express/head-metadata": "head metadata",
+ "operations/s3-express/head-missing": "Report a HEAD answered 404 as not_found or missing. Its answer has no body, so it cannot say whether the object or the bucket is absent",
+ "operations/s3-express/list-all-empty": "Report an empty bucket as an empty listing",
+ "operations/s3-express/list-all-pages": "Follow each page's continuation token until a page is not truncated",
+ "operations/s3-express/list-bad-marker": "Report S3's 400 InvalidArgument for a continuation token it did not issue",
+ "operations/s3-express/list-bucket-missing": "Report the NoSuchBucket error that CreateSession answers for a missing directory bucket, and send nothing more. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/s3-express/list-checksum-algorithm": "Report each listed object's checksum algorithm as one name; S3 keeps one checksum per object, the one a write sent or else CRC64NVME, and lists one ChecksumAlgorithm",
+ "operations/s3-express/list-delimited": "Send the delimiter, and report the keys it groups as common prefixes, not as entries",
+ "operations/s3-express/list-empty": "Report a prefix with no objects as no entries, no prefixes and an empty continuation token",
+ "operations/s3-express/list-encoded-names": "Ask for encoding-type=url, and decode each name once: + is a space and %2B a plus. Without it S3 writes U+0001 as , which XML 1.0 forbids, and a CR that XML turns into LF",
+ "operations/s3-express/list-encoding-ignored": "Read the keys as sent when a service ignores encoding-type=url and the page has no EncodingType; a % that begins no escape is text, as in URL percent-decoding",
+ "operations/s3-express/list-entry-properties": "Report each listed object's last-modified time as RFC 3339 in UTC, and its storage class",
+ "operations/s3-express/list-fetch-owner": "Ask for owners with fetch-owner=true, and report each listed object's owner ID",
+ "operations/s3-express/list-first-page": "Send page_size as max-keys, and report a truncated page's NextContinuationToken as the continuation token",
+ "operations/s3-express/list-max-keys-zero": "Send page_size 0 as max-keys=0; S3 answers an empty page that is not truncated",
+ "operations/s3-express/list-next-page": "Send the continuation token as continuation-token, a + in it as %2B, and report an empty token for the last page",
+ "operations/s3-express/list-order": "Report the entries in the order a directory bucket sends them, which is not sorted, without sorting them again",
+ "operations/s3-express/list-order-delimited": "Report the entries and the common prefixes in the order a directory bucket sends them, without sorting them",
+ "operations/s3-express/list-other-delimiter": "Report the 400 InvalidRequest that a directory bucket answers to a delimiter other than /, or refuse it before sending",
+ "operations/s3-express/list-over-1000": "List more keys than the service's default page of 1,000 by following the continuation token",
+ "operations/s3-express/list-page": "List a prefix with ListObjectsV2 (list-type=2), and report each entry's key, size and ETag, quotes included",
+ "operations/s3-express/list-prefix-special-characters": "Percent-encode the prefix in the query, a space as %20 and a plus as %2B, and decode the common prefixes of a URL-encoded listing as well as the keys",
+ "operations/s3-express/list-prefix-without-slash": "Report the 400 InvalidRequest that a directory bucket answers to a prefix not ending in /, or refuse it before sending",
+ "operations/s3-express/list-separator-keys": "Report keys with leading dots, repeated slashes, a space and a trailing slash exactly as stored",
+ "operations/s3-express/list-separator-keys-delimited": "Group each key at the first delimiter after the prefix, even where the key repeats it or ends with it",
+ "operations/s3-express/list-service-unavailable": "Report a 503 ServiceUnavailable answer as an error, after at most 5 retries",
+ "operations/s3-express/list-start-after": "Report the NotSupported error that a directory bucket answers to start-after",
+ "operations/s3-express/list-truncated-without-token": "Report an error when a truncated page carries no continuation token; do not stop early or list from the start again",
+ "operations/s3-express/list-xml-escaped": "Read XML character references in listed names, such as & and <, or ask for encoding-type=url and decode the names",
+ "operations/s3-express/put-computing-crc32": "Compute the CRC32 checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-crc32 or in a trailer of an aws-chunked body",
+ "operations/s3-express/put-computing-crc32c": "Compute the CRC32C checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-crc32c or in a trailer of an aws-chunked body",
+ "operations/s3-express/put-computing-crc64nvme": "Compute the CRC64NVME checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-crc64nvme or in a trailer of an aws-chunked body",
+ "operations/s3-express/put-computing-sha1": "Compute the SHA1 checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-sha1 or in a trailer of an aws-chunked body",
+ "operations/s3-express/put-computing-sha256": "Compute the SHA256 checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-sha256 or in a trailer of an aws-chunked body",
+ "operations/s3-express/put-content-disposition-non-ascii": "Write a Content-Disposition whose filename is outside ASCII. A directory bucket refuses a header byte outside ASCII with 400 InvalidRequest, so send an RFC 6266 filename*, which any reader decodes, or refuse the value",
+ "operations/s3-express/put-content-encoding-gzip": "Report the refusal of Content-Encoding: gzip by a directory bucket",
+ "operations/s3-express/put-content-properties": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write",
+ "operations/s3-express/put-content-type-edge-spaces": "Write a content type with spaces at either end, which HTTP drops, so the service stores it trimmed. A client may refuse it",
+ "operations/s3-express/put-content-type-non-ascii": "Report a Content-Type with a parameter outside ASCII as an error, or refuse it. A directory bucket refuses a header byte outside ASCII with 400 InvalidRequest, and no encoding of a Content-Type parameter is one every reader decodes",
+ "operations/s3-express/put-created": "put created",
+ "operations/s3-express/put-created-empty": "put created empty",
+ "operations/s3-express/put-created-key-double-slash": "put created, with the key \"double//slash.txt\"",
+ "operations/s3-express/put-created-key-hash": "put created, with the key \"hash#tag.txt\"",
+ "operations/s3-express/put-created-key-non-ascii": "put created, with the key \"café/雪.txt\"",
+ "operations/s3-express/put-created-key-percent": "put created, with the key \"percent%20.txt\"",
+ "operations/s3-express/put-created-key-plus": "put created, with the key \"plus+plus.txt\"",
+ "operations/s3-express/put-created-key-question": "put created, with the key \"question?mark.txt\"",
+ "operations/s3-express/put-created-key-space": "put created, with the key \"space name.txt\"",
+ "operations/s3-express/put-created-key-trailing-slash": "put created, with the key \"trailing-slash/\"",
+ "operations/s3-express/put-if-match-current": "put if match current",
+ "operations/s3-express/put-if-none-match-missing": "put if none match missing",
+ "operations/s3-express/put-internal-error": "Report a 500 InternalError answer as an error, after at most 5 retries",
+ "operations/s3-express/put-key-1024": "put key 1024",
+ "operations/s3-express/put-key-1025": "put key 1025",
+ "operations/s3-express/put-lost-the-race-to-create": "put lost the race to create",
+ "operations/s3-express/put-md5-mismatch": "Report the 501 NotImplemented that a directory bucket answers to Content-MD5, matching or not",
+ "operations/s3-express/put-metadata": "put metadata",
+ "operations/s3-express/put-metadata-empty-value": "put metadata empty value",
+ "operations/s3-express/put-metadata-hyphen-name": "put metadata hyphen name",
+ "operations/s3-express/put-metadata-names-differ-in-case": "S3 matches a metadata name without case. A directory bucket refuses two names that differ only in case.",
+ "operations/s3-express/put-metadata-non-ascii-value": "A directory bucket refuses a header byte outside ASCII, and stores an RFC 2047 encoded word as it came. Send é as an encoded word, or refuse the value if the client keeps metadata to ASCII.",
+ "operations/s3-express/put-metadata-outside-latin-1": "A directory bucket refuses the UTF-8 bytes of 雪. Send it as an RFC 2047 encoded word, or refuse the value if the client keeps metadata to ASCII.",
+ "operations/s3-express/put-metadata-punctuation-name": "S3 stores a name that holds any character of an HTTP token, and one that starts with a digit.",
+ "operations/s3-express/put-metadata-replaced": "put metadata replaced",
+ "operations/s3-express/put-metadata-value-control-characters": "A control character other than a tab is no valid HTTP field value. Send the value as an RFC 2047 encoded word, which S3 stores and a read decodes again, or refuse it.",
+ "operations/s3-express/put-metadata-value-edge-whitespace": "HTTP drops spaces and tabs at either end of a header value, so S3 would store a. Send the value as an RFC 2047 encoded word, which a read decodes again, or refuse it.",
+ "operations/s3-express/put-metadata-value-encoded-word-text": "A general-purpose bucket reads each space-separated token that starts with =? and ends with ?= as an RFC 2047 encoded word: it decodes it, or answers 400 or 500 when it cannot. A directory bucket stores such a token as it is sent. A client that decodes on a read sends the value wrapped in an encoded word of its own; one that keeps metadata to ASCII sends it as it is.",
+ "operations/s3-express/put-metadata-value-line-break": "CR and LF are no valid HTTP field value. A directory bucket stores an RFC 2047 encoded word as sent, so send the value as one, which a read decodes again, or refuse it.",
+ "operations/s3-express/put-metadata-value-not-an-encoded-word": "A general-purpose bucket reads each space-separated token that starts with =? and ends with ?= as an RFC 2047 encoded word: it decodes it, or answers 400 or 500 when it cannot. Neither a=?b?=c nor x=?UTF-8?Q?caf=C3=A9?=y is such a token, so S3 stores this value as it is sent, and a read returns it. Send it as it is, or wrapped in an encoded word; do not refuse it.",
+ "operations/s3-express/put-metadata-value-with-tab": "S3 stores a tab inside a value as it is sent. Send it raw, or inside an RFC 2047 encoded word.",
+ "operations/s3-express/put-overwrite": "put overwrite",
+ "operations/s3-express/put-precondition-failed": "put precondition failed",
+ "operations/s3-express/put-two-checksums": "Report S3's refusal of a write with two additional checksums; S3 keeps one checksum per object and answers 400 InvalidRequest to more than one x-amz-checksum- header",
+ "operations/s3-express/put-with-crc32": "Send an additional checksum in its x-amz-checksum- header; S3 stores it as the object's one checksum, in place of the CRC64NVME it adds to a write without one",
+ "operations/s3-express/put-with-crc32c": "Send a CRC32C checksum that the caller gives, in x-amz-checksum-crc32c",
+ "operations/s3-express/put-with-crc64nvme": "Send a CRC64NVME checksum that the caller gives, in x-amz-checksum-crc64nvme",
+ "operations/s3-express/put-with-md5": "Report the 501 NotImplemented that a directory bucket answers to Content-MD5, matching or not",
+ "operations/s3-express/put-with-sha1": "Send a SHA1 checksum that the caller gives, in x-amz-checksum-sha1",
+ "operations/s3-express/put-with-sha256": "Send a SHA256 checksum that the caller gives, in x-amz-checksum-sha256",
+ "operations/s3-express/session": "CreateSession returns credentials",
+ "operations/s3-express/session-unauthenticated": "CreateSession reports access denial",
+ "operations/s3-express/stage": "stage",
+ "operations/s3-express/stage-after-abort": "stage after abort",
+ "operations/s3-express/stage-copy": "Copy a whole object into a part of a multipart upload, with UploadPartCopy",
+ "operations/s3-express/stage-copy-200-internal-error": "Report a part copy answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
+ "operations/s3-express/stage-copy-range": "Copy bytes 0 to 2 of an object into a part, named in x-amz-copy-source-range with an inclusive end, as bytes=0-2",
+ "operations/s3-express/stage-copy-range-beyond-source": "Copy a part whose range ends past the source. A directory bucket accepts it, where a general-purpose bucket answers 400 InvalidArgument",
+ "operations/s3-express/stage-empty-part": "Stage an empty part, which S3 takes",
+ "operations/s3-express/stage-key-double-slash": "stage, with the key \"double//slash.txt\"",
+ "operations/s3-express/stage-key-hash": "stage, with the key \"hash#tag.txt\"",
+ "operations/s3-express/stage-key-non-ascii": "stage, with the key \"café/雪.txt\"",
+ "operations/s3-express/stage-key-percent": "stage, with the key \"percent%20.txt\"",
+ "operations/s3-express/stage-key-plus": "stage, with the key \"plus+plus.txt\"",
+ "operations/s3-express/stage-key-question": "stage, with the key \"question?mark.txt\"",
+ "operations/s3-express/stage-key-space": "stage, with the key \"space name.txt\"",
+ "operations/s3-express/stage-key-trailing-slash": "stage, with the key \"trailing-slash/\"",
+ "operations/s3-express/stage-last": "stage last",
+ "operations/s3-express/stage-part-10000": "Part numbers run from 1 to 10,000. Stage part 10,000; only 0 and 10,001 may be refused.",
+ "operations/s3-express/stage-part-10001": "stage part 10001",
+ "operations/s3-express/stage-part-zero": "stage part zero",
+ "operations/s3-express/stage-unknown-upload": "stage unknown upload",
+ "operations/s3-express/staged": "staged",
+ "operations/s3-express/staged-after-abort": "staged after abort",
+ "operations/s3-express/staged-replacement": "staged replacement",
+ "operations/s3-express/staged-unknown-upload": "staged unknown upload",
+ "operations/s3-express/start": "start",
+ "operations/s3-express/start-content-properties": "Start a multipart upload with content properties, which the completed object keeps",
+ "operations/s3/abort": "abort",
+ "operations/s3/abort-after-commit": "abort after commit",
+ "operations/s3/abort-unknown-upload": "abort unknown upload",
+ "operations/s3/commit": "commit",
+ "operations/s3/commit-200-internal-error": "Report a completion answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
+ "operations/s3/commit-after-abort": "commit after abort",
+ "operations/s3/commit-conditional-conflict": "Report a 409 ConditionalRequestConflict to a conditional completion as an error, without sending the completion again: AWS advises a new upload with every part staged again",
+ "operations/s3/commit-key-double-slash": "commit, with the key \"double//slash.txt\"",
+ "operations/s3/commit-key-hash": "commit, with the key \"hash#tag.txt\"",
+ "operations/s3/commit-key-non-ascii": "commit, with the key \"café/雪.txt\"",
+ "operations/s3/commit-key-percent": "commit, with the key \"percent%20.txt\"",
+ "operations/s3/commit-key-plus": "commit, with the key \"plus+plus.txt\"",
+ "operations/s3/commit-key-question": "commit, with the key \"question?mark.txt\"",
+ "operations/s3/commit-key-space": "commit, with the key \"space name.txt\"",
+ "operations/s3/commit-key-trailing-slash": "commit, with the key \"trailing-slash/\"",
+ "operations/s3/commit-lost-the-race-to-create": "commit lost the race to create",
+ "operations/s3/commit-nothing": "commit nothing",
+ "operations/s3/commit-object-size": "Send the object size the caller expects in x-amz-mp-object-size; a completion whose parts add up to it succeeds",
+ "operations/s3/commit-object-size-mismatch": "Report S3's refusal of a completion whose parts do not add up to the object size stated in x-amz-mp-object-size",
+ "operations/s3/commit-one-empty-part": "Complete an upload of one empty part, which writes an empty object; a client that refuses a completion of no parts writes an empty object this way",
+ "operations/s3/commit-out-of-order": "commit out of order",
+ "operations/s3/commit-part-too-small": "commit part too small",
+ "operations/s3/commit-precondition-failed": "commit precondition failed",
+ "operations/s3/commit-single-small-part": "commit single small part",
+ "operations/s3/commit-subset": "commit subset",
+ "operations/s3/commit-unstaged-part": "commit unstaged part",
+ "operations/s3/commit-wrong-etag": "commit wrong etag",
+ "operations/s3/complete-multipart-200-error": "complete multipart 200 error",
+ "operations/s3/copy": "Copy an object to another key in the same bucket",
+ "operations/s3/copy-200-internal-error": "Report a copy answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
+ "operations/s3/copy-across-buckets": "Copy an object from another bucket, which x-amz-copy-source names before the key",
+ "operations/s3/copy-missing-source": "Refuse a copy whose source does not exist",
+ "operations/s3/copy-onto-itself": "Report a copy of an object onto itself that changes nothing as an error. S3 answers 400 InvalidRequest",
+ "operations/s3/copy-onto-itself-replace-metadata": "Copy an object onto itself to replace its metadata, which S3 accepts with x-amz-metadata-directive: REPLACE",
+ "operations/s3/copy-replace-metadata": "Copy an object with new metadata and a new content type. S3 keeps the source's unless x-amz-metadata-directive is REPLACE, so a client that sets either must send it",
+ "operations/s3/copy-replace-tags": "Copy an object with new tags. S3 copies the source's tags unless x-amz-tagging-directive is REPLACE, so a client that sets tags must send it",
+ "operations/s3/copy-source-if-match": "Copy an object only if the source still has this ETag, named in x-amz-copy-source-if-match",
+ "operations/s3/copy-source-if-match-failed": "Report a copy whose source does not have the ETag in x-amz-copy-source-if-match as a failed condition. S3 answers 412 PreconditionFailed and writes nothing",
+ "operations/s3/copy-source-if-modified-since": "Copy an object only if the source changed after a time, named in x-amz-copy-source-if-modified-since as an HTTP date",
+ "operations/s3/copy-source-if-none-match-failed": "Report a copy whose source has the ETag in x-amz-copy-source-if-none-match as a failed condition. A copy answers 412 PreconditionFailed where a read answers 304",
+ "operations/s3/copy-source-if-unmodified-since-failed": "Report a copy whose source changed after the time in x-amz-copy-source-if-unmodified-since as a failed condition, 412 PreconditionFailed",
+ "operations/s3/copy-source-key-encoded": "Copy from a key with a space, +, %, é, ? and #. x-amz-copy-source percent-encodes every byte of the key outside letters, digits, -._~ and /",
+ "operations/s3/copy-source-version": "Copy an earlier version of an object, named by versionId in x-amz-copy-source",
+ "operations/s3/copy-storage-class": "Copy an object into another storage class, named in x-amz-storage-class",
+ "operations/s3/delete-accepted": "delete accepted",
+ "operations/s3/delete-accepted-key-double-slash": "delete accepted, with the key \"double//slash.txt\"",
+ "operations/s3/delete-accepted-key-hash": "delete accepted, with the key \"hash#tag.txt\"",
+ "operations/s3/delete-accepted-key-non-ascii": "delete accepted, with the key \"café/雪.txt\"",
+ "operations/s3/delete-accepted-key-percent": "delete accepted, with the key \"percent%20.txt\"",
+ "operations/s3/delete-accepted-key-plus": "delete accepted, with the key \"plus+plus.txt\"",
+ "operations/s3/delete-accepted-key-question": "delete accepted, with the key \"question?mark.txt\"",
+ "operations/s3/delete-accepted-key-space": "delete accepted, with the key \"space name.txt\"",
+ "operations/s3/delete-accepted-key-trailing-slash": "delete accepted, with the key \"trailing-slash/\"",
+ "operations/s3/delete-bucket-missing": "delete bucket missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/s3/delete-if-match-current": "delete if match current",
+ "operations/s3/delete-many": "Delete several objects in one request and report each result",
+ "operations/s3/delete-many-1000": "Delete 1,000 keys in one DeleteObjects request, the most S3 takes",
+ "operations/s3/delete-many-1001": "Report a DeleteObjects request of 1,001 keys, one more than S3 takes, as an error. A client may refuse it before sending",
+ "operations/s3/delete-many-errors": "Report each key that S3 lists as an Error in a DeleteObjects answer, here AccessDenied, as that key's error, and the others as deleted",
+ "operations/s3/delete-missing": "delete missing",
+ "operations/s3/delete-precondition-failed": "delete precondition failed",
+ "operations/s3/delete-slow-down": "Report a 503 SlowDown answer as an error, after at most 5 retries",
+ "operations/s3/delete-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/s3/get-before-commit": "get before commit",
+ "operations/s3/get-body-cut-short": "Report a body that ends before its Content-Length as an error, or resume it, but never return the short body",
+ "operations/s3/get-bucket-missing": "get bucket missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/s3/get-committed-tail": "get committed tail",
+ "operations/s3/get-content-encoding-gzip": "Return the stored gzip bytes and Content-Encoding: gzip without decoding them",
+ "operations/s3/get-content-properties": "Return the stored content properties from a GET",
+ "operations/s3/get-empty": "get empty",
+ "operations/s3/get-if-match-current": "get if match current",
+ "operations/s3/get-if-modified-since-future": "Read an object when If-Modified-Since names a future date",
+ "operations/s3/get-if-modified-since-invalid": "Read an object when If-Modified-Since is not an HTTP date, which S3 ignores. A client may refuse the date instead",
+ "operations/s3/get-if-modified-since-past": "Read an object modified since a past date",
+ "operations/s3/get-if-modified-since-unchanged": "Report an object not changed since the If-Modified-Since date as 304 Not Modified, not as an error of the service or an empty object",
+ "operations/s3/get-if-none-match-other": "get if none match other",
+ "operations/s3/get-if-unmodified-since-past": "Refuse a read with 412 when the object changed after If-Unmodified-Since",
+ "operations/s3/get-key-with-hash": "get key with hash",
+ "operations/s3/get-key-with-non-ascii": "get key unicode",
+ "operations/s3/get-key-with-percent": "get key with percent",
+ "operations/s3/get-key-with-plus": "get key with plus",
+ "operations/s3/get-key-with-question": "get key question",
+ "operations/s3/get-key-with-separators": "get key separators",
+ "operations/s3/get-key-with-space": "get key with space",
+ "operations/s3/get-metadata": "get metadata",
+ "operations/s3/get-metadata-empty-value": "get metadata empty value",
+ "operations/s3/get-metadata-hyphen-name": "get metadata hyphen name",
+ "operations/s3/get-metadata-ignores-unknown-headers": "Surface user metadata; unknown headers must not become metadata.",
+ "operations/s3/get-metadata-malformed-encoded-word": "Leave a value that only looks like an RFC 2047 encoded word as it is: =ZZ is no hexadecimal byte.",
+ "operations/s3/get-metadata-non-ascii-value": "A general-purpose bucket returns a value outside ASCII as an RFC 2047 encoded word. Decode it, so é reads back as é.",
+ "operations/s3/get-metadata-outside-latin-1": "Decode a base64 RFC 2047 encoded word, which S3 returns for text that is mostly outside ASCII.",
+ "operations/s3/get-metadata-punctuation-name": "Report a metadata name that holds any character of an HTTP token.",
+ "operations/s3/get-metadata-replaced": "get metadata replaced",
+ "operations/s3/get-metadata-split-encoded-words": "S3 returns a long value as several RFC 2047 encoded words, separated by spaces. Decode each and join them without the spaces.",
+ "operations/s3/get-missing": "get missing. A client reports it as not_found: the object is absent",
+ "operations/s3/get-noise-tolerance": "get noise tolerance",
+ "operations/s3/get-not-modified": "get not modified",
+ "operations/s3/get-precondition-failed": "get precondition failed",
+ "operations/s3/get-range": "get range",
+ "operations/s3/get-range-empty": "Read a range of no bytes, whose start equals its end. HTTP has no form for it: bytes=5-4 is inverted, and the service ignores it and sends the whole object. A client may refuse it instead",
+ "operations/s3/get-range-inverted": "get range inverted",
+ "operations/s3/get-range-not-satisfiable": "get range not satisfiable",
+ "operations/s3/get-range-of-empty-object": "Report a range read of an empty object as 416 InvalidRange: no range of it can be satisfied, not even its first byte",
+ "operations/s3/get-range-open": "get range open",
+ "operations/s3/get-range-past-the-end": "Read a range that ends past the object, which the service clips to the object's end. Report the window it served from Content-Range, bytes 28-29/30, so that the caller sees the range was clipped",
+ "operations/s3/get-range-single-byte": "get range single byte",
+ "operations/s3/get-replaced": "get replaced",
+ "operations/s3/get-single-part": "get single part",
+ "operations/s3/get-slow-down": "Report a 503 SlowDown answer as an error, after at most 5 retries",
+ "operations/s3/get-suffix": "get suffix",
+ "operations/s3/get-suffix-longer-than-object": "get suffix longer than object",
+ "operations/s3/get-tagging": "Read the tags of an object",
+ "operations/s3/get-tagging-none": "Report no tags for an object without any, which S3 answers with an empty TagSet",
+ "operations/s3/get-temporary-redirect": "Report a 307 TemporaryRedirect as an error",
+ "operations/s3/get-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/s3/get-version": "get version",
+ "operations/s3/get-whole": "get whole",
+ "operations/s3/get-wrong-region": "Report a 301 PermanentRedirect from an endpoint in another region as an error",
+ "operations/s3/get-xml-looking": "get xml looking",
+ "operations/s3/head": "head",
+ "operations/s3/head-bucket-missing": "Report a HEAD of an object in a missing bucket as missing, not not_found. S3 answers 404 without a body, the same answer as for a missing object, so a client cannot tell that the object is absent",
+ "operations/s3/head-committed": "head committed",
+ "operations/s3/head-content-properties": "Return the stored content properties from a HEAD",
+ "operations/s3/head-if-unmodified-since-past": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since",
+ "operations/s3/head-key-double-slash": "head, with the key \"double//slash.txt\"",
+ "operations/s3/head-key-hash": "head, with the key \"hash#tag.txt\"",
+ "operations/s3/head-key-non-ascii": "head, with the key \"café/雪.txt\"",
+ "operations/s3/head-key-percent": "head, with the key \"percent%20.txt\"",
+ "operations/s3/head-key-plus": "head, with the key \"plus+plus.txt\"",
+ "operations/s3/head-key-question": "head, with the key \"question?mark.txt\"",
+ "operations/s3/head-key-space": "head, with the key \"space name.txt\"",
+ "operations/s3/head-key-trailing-slash": "head, with the key \"trailing-slash/\"",
+ "operations/s3/head-metadata": "head metadata",
+ "operations/s3/head-missing": "Report a HEAD answered 404 as not_found or missing. Its answer has no body, so it cannot say whether the object or the bucket is absent",
+ "operations/s3/head-storage-class": "Read the storage class of an object",
+ "operations/s3/list-all-empty": "Report an empty bucket as an empty listing",
+ "operations/s3/list-all-pages": "Follow each page's continuation token until a page is not truncated",
+ "operations/s3/list-bad-marker": "Report S3's 400 InvalidArgument for a continuation token it did not issue",
+ "operations/s3/list-bucket-missing": "Report 404 NoSuchBucket for a bucket that does not exist. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/s3/list-checksum-algorithm": "Report each listed object's checksum algorithm as one name; S3 keeps one checksum per object, the one a write sent or else CRC64NVME, and lists one ChecksumAlgorithm",
+ "operations/s3/list-delimited": "Send the delimiter, and report the keys it groups as common prefixes, not as entries",
+ "operations/s3/list-empty": "Report a prefix with no objects as no entries, no prefixes and an empty continuation token",
+ "operations/s3/list-encoded-names": "Ask for encoding-type=url, and decode each name once: + is a space and %2B a plus. Without it S3 writes U+0001 as , which XML 1.0 forbids, and a CR that XML turns into LF",
+ "operations/s3/list-encoding-ignored": "Read the keys as sent when a service ignores encoding-type=url and the page has no EncodingType; a % that begins no escape is text, as in URL percent-decoding",
+ "operations/s3/list-entry-properties": "Report each listed object's last-modified time as RFC 3339 in UTC, and its storage class",
+ "operations/s3/list-fetch-owner": "Ask for owners with fetch-owner=true, and report each listed object's owner ID",
+ "operations/s3/list-first-page": "Send page_size as max-keys, and report a truncated page's NextContinuationToken as the continuation token",
+ "operations/s3/list-key-equal-to-prefix": "Report a key that equals the prefix as an entry",
+ "operations/s3/list-key-equal-to-prefix-delimited": "Report a key that equals the prefix as an entry, and the keys under it as a common prefix",
+ "operations/s3/list-max-keys-zero": "Send page_size 0 as max-keys=0; S3 answers an empty page that is not truncated",
+ "operations/s3/list-next-page": "Send the continuation token as continuation-token, a + in it as %2B, and report an empty token for the last page",
+ "operations/s3/list-order": "Report the entries in the order S3 sends them, without sorting them again",
+ "operations/s3/list-order-delimited": "Report the entries and the common prefixes in the order S3 sends them, each list on its own",
+ "operations/s3/list-other-delimiter": "Send the delimiter the caller names. A general-purpose bucket groups keys at any delimiter, not only /; here a- groups a-1.txt and a-2.txt",
+ "operations/s3/list-over-1000": "List more keys than the service's default page of 1,000 by following the continuation token",
+ "operations/s3/list-page": "List a prefix with ListObjectsV2 (list-type=2), and report each entry's key, size and ETag, quotes included",
+ "operations/s3/list-prefix-special-characters": "Percent-encode the prefix in the query, a space as %20 and a plus as %2B, and decode the common prefixes of a URL-encoded listing as well as the keys",
+ "operations/s3/list-prefix-without-slash": "Match the prefix as the start of the key, not as a directory: object-tests/boa matches object-tests/board/",
+ "operations/s3/list-separator-keys": "Report keys with leading dots, repeated slashes, a space and a trailing slash exactly as stored",
+ "operations/s3/list-separator-keys-delimited": "Group each key at the first delimiter after the prefix, even where the key repeats it or ends with it",
+ "operations/s3/list-service-unavailable": "Report a 503 ServiceUnavailable answer as an error, after at most 5 retries",
+ "operations/s3/list-start-after": "Send start-after, and list only the keys after it",
+ "operations/s3/list-start-after-delimited": "Send a start-after that names no key; it skips the keys and common prefixes up to it",
+ "operations/s3/list-truncated-without-token": "Report an error when a truncated page carries no continuation token; do not stop early or list from the start again",
+ "operations/s3/list-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/s3/list-xml-escaped": "Read XML character references in listed names, such as & and <, or ask for encoding-type=url and decode the names",
+ "operations/s3/put-bucket-missing": "put bucket missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/s3/put-computing-crc32": "Compute the CRC32 checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-crc32 or in a trailer of an aws-chunked body",
+ "operations/s3/put-computing-crc32c": "Compute the CRC32C checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-crc32c or in a trailer of an aws-chunked body",
+ "operations/s3/put-computing-crc64nvme": "Compute the CRC64NVME checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-crc64nvme or in a trailer of an aws-chunked body",
+ "operations/s3/put-computing-sha1": "Compute the SHA1 checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-sha1 or in a trailer of an aws-chunked body",
+ "operations/s3/put-computing-sha256": "Compute the SHA256 checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-sha256 or in a trailer of an aws-chunked body",
+ "operations/s3/put-conditional-conflict": "Report a 409 ConditionalRequestConflict to a conditional put as an error. AWS advises retrying a put, so a client may retry up to 5 times first, and need not retry",
+ "operations/s3/put-content-disposition-non-ascii": "Write a Content-Disposition whose filename is outside ASCII. A general-purpose bucket returns header bytes as it got them, so the UTF-8 bytes read back; an RFC 6266 filename* is stored as written, and any reader decodes it",
+ "operations/s3/put-content-encoding-gzip": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged",
+ "operations/s3/put-content-properties": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write",
+ "operations/s3/put-content-type-edge-spaces": "Write a content type with spaces at either end, which HTTP drops, so the service stores it trimmed. A client may refuse it",
+ "operations/s3/put-content-type-non-ascii": "Write a Content-Type with a parameter outside ASCII as its UTF-8 bytes. A general-purpose bucket returns header bytes as it got them, so they read back",
+ "operations/s3/put-created": "put created",
+ "operations/s3/put-created-empty": "put created empty",
+ "operations/s3/put-created-key-double-slash": "put created, with the key \"double//slash.txt\"",
+ "operations/s3/put-created-key-hash": "put created, with the key \"hash#tag.txt\"",
+ "operations/s3/put-created-key-non-ascii": "put created, with the key \"café/雪.txt\"",
+ "operations/s3/put-created-key-percent": "put created, with the key \"percent%20.txt\"",
+ "operations/s3/put-created-key-plus": "put created, with the key \"plus+plus.txt\"",
+ "operations/s3/put-created-key-question": "put created, with the key \"question?mark.txt\"",
+ "operations/s3/put-created-key-space": "put created, with the key \"space name.txt\"",
+ "operations/s3/put-created-key-trailing-slash": "put created, with the key \"trailing-slash/\"",
+ "operations/s3/put-if-match-current": "put if match current",
+ "operations/s3/put-if-none-match-missing": "put if none match missing",
+ "operations/s3/put-if-unmodified-since-past": "Report a write with If-Unmodified-Since as an error. S3 takes no date condition on a PutObject and answers 501 NotImplemented. A client may refuse it before sending",
+ "operations/s3/put-internal-error": "Report a 500 InternalError answer as an error, after at most 5 retries",
+ "operations/s3/put-key-1024": "put key 1024",
+ "operations/s3/put-key-1025": "put key 1025",
+ "operations/s3/put-lost-the-race-to-create": "put lost the race to create",
+ "operations/s3/put-md5-mismatch": "Declared transactional MD5 must cover the exact body bytes; report service rejection of a mismatch.",
+ "operations/s3/put-metadata": "put metadata",
+ "operations/s3/put-metadata-empty-value": "put metadata empty value",
+ "operations/s3/put-metadata-hyphen-name": "put metadata hyphen name",
+ "operations/s3/put-metadata-names-differ-in-case": "S3 matches a metadata name without case. A general-purpose bucket merges two names that differ only in case into one pair, dup: one,two, which does not read back as sent, so refuse the call.",
+ "operations/s3/put-metadata-non-ascii-value": "A general-purpose bucket reads header bytes as ISO-8859-1 and decodes an RFC 2047 encoded word. Send é as the byte e9 or as an encoded word, or refuse the value if the client keeps metadata to ASCII; its UTF-8 bytes store café.",
+ "operations/s3/put-metadata-outside-latin-1": "No header byte carries 雪, so send it as an RFC 2047 encoded word, or refuse the value if the client keeps metadata to ASCII. A general-purpose bucket stores its UTF-8 bytes as three ISO-8859-1 characters.",
+ "operations/s3/put-metadata-punctuation-name": "S3 stores a name that holds any character of an HTTP token, and one that starts with a digit.",
+ "operations/s3/put-metadata-replaced": "put metadata replaced",
+ "operations/s3/put-metadata-value-control-characters": "A control character other than a tab is no valid HTTP field value. Send the value as an RFC 2047 encoded word, which S3 stores and a read decodes again, or refuse it.",
+ "operations/s3/put-metadata-value-edge-whitespace": "HTTP drops spaces and tabs at either end of a header value, so S3 would store a. An RFC 2047 encoded word stores them, but a read returns the value unencoded and loses them again. Send an encoded word, or refuse the value.",
+ "operations/s3/put-metadata-value-encoded-word-text": "A general-purpose bucket reads each space-separated token that starts with =? and ends with ?= as an RFC 2047 encoded word: it decodes it, or answers 400 or 500 when it cannot. So =?UTF-8?Q?caf=C3=A9?= sent as it is stores café. Wrapped in an encoded word of its own it stores the text, but a read returns it unencoded and decodes it again. Wrap it, or refuse it.",
+ "operations/s3/put-metadata-value-line-break": "CR and LF are no valid HTTP field value, and a general-purpose bucket stores each as a space even inside an RFC 2047 encoded word. No request stores the value, so refuse it.",
+ "operations/s3/put-metadata-value-not-an-encoded-word": "A general-purpose bucket reads each space-separated token that starts with =? and ends with ?= as an RFC 2047 encoded word: it decodes it, or answers 400 or 500 when it cannot. Neither a=?b?=c nor x=?UTF-8?Q?caf=C3=A9?=y is such a token, so S3 stores this value as it is sent, and a read returns it. Send it as it is, or wrapped in an encoded word; do not refuse it.",
+ "operations/s3/put-metadata-value-with-tab": "S3 stores a tab inside a value as it is sent. Send it raw, or inside an RFC 2047 encoded word.",
+ "operations/s3/put-overwrite": "put overwrite",
+ "operations/s3/put-precondition-failed": "put precondition failed",
+ "operations/s3/put-tagging": "Replace the tags of an object",
+ "operations/s3/put-tagging-10-tags": "Set 10 tags, the most an object takes",
+ "operations/s3/put-tagging-11-tags": "Report 11 tags, one more than an object takes, as an error. A client may refuse them",
+ "operations/s3/put-tagging-duplicate-key": "Report a tag set that names one key twice as an error. A client may refuse it, or report it unsupported where its API cannot repeat a key",
+ "operations/s3/put-tagging-invalid-character": "Report a tag key with !, which S3 does not allow, as an error. A client may refuse it",
+ "operations/s3/put-tagging-key-128": "Set a tag whose key has 128 characters, the longest a key may be",
+ "operations/s3/put-tagging-key-129": "Report a tag key of 129 characters, one more than a key may have, as an error. A client may refuse it",
+ "operations/s3/put-tagging-special-characters": "Set a tag with a space and each of + - = . _ : / @, which S3 allows, escaped as XML text",
+ "operations/s3/put-tagging-value-256": "Set a tag whose value has 256 characters, the longest a value may be",
+ "operations/s3/put-tagging-value-257": "Report a tag value of 257 characters, one more than a value may have, as an error. A client may refuse it",
+ "operations/s3/put-two-checksums": "Report S3's refusal of a write with two additional checksums; S3 keeps one checksum per object and answers 400 InvalidRequest to more than one x-amz-checksum- header",
+ "operations/s3/put-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/s3/put-with-crc32": "Send an additional checksum in its x-amz-checksum- header; S3 stores it as the object's one checksum, in place of the CRC64NVME it adds to a write without one",
+ "operations/s3/put-with-crc32c": "Send a CRC32C checksum that the caller gives, in x-amz-checksum-crc32c",
+ "operations/s3/put-with-crc64nvme": "Send a CRC64NVME checksum that the caller gives, in x-amz-checksum-crc64nvme",
+ "operations/s3/put-with-md5": "Carry a declared transactional MD5 without substituting a payload or stored-property hash.",
+ "operations/s3/put-with-sha1": "Send a SHA1 checksum that the caller gives, in x-amz-checksum-sha1",
+ "operations/s3/put-with-sha256": "Send a SHA256 checksum that the caller gives, in x-amz-checksum-sha256",
+ "operations/s3/put-with-storage-class": "Write an object into the STANDARD_IA storage class",
+ "operations/s3/put-with-tags": "Write an object with tags",
+ "operations/s3/put-with-tags-duplicate-key": "Report a write whose x-amz-tagging names one key twice as an error. A client may refuse it, or report it unsupported where its API cannot repeat a key",
+ "operations/s3/put-with-tags-special-characters": "Write an object with a tag that holds a space and each of + - = . _ : / @, percent-encoded in x-amz-tagging, so that S3 reads + as a plus and not a space",
+ "operations/s3/put-with-unknown-storage-class": "Refuse a storage class that S3 does not have",
+ "operations/s3/stage": "stage",
+ "operations/s3/stage-after-abort": "stage after abort",
+ "operations/s3/stage-copy": "Copy a whole object into a part of a multipart upload, with UploadPartCopy",
+ "operations/s3/stage-copy-200-internal-error": "Report a part copy answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
+ "operations/s3/stage-copy-range": "Copy bytes 0 to 2 of an object into a part, named in x-amz-copy-source-range with an inclusive end, as bytes=0-2",
+ "operations/s3/stage-copy-range-beyond-source": "Report a part copy whose range ends past the source as an error. S3 answers 400 InvalidArgument",
+ "operations/s3/stage-empty-part": "Stage an empty part, which S3 takes",
+ "operations/s3/stage-key-double-slash": "stage, with the key \"double//slash.txt\"",
+ "operations/s3/stage-key-hash": "stage, with the key \"hash#tag.txt\"",
+ "operations/s3/stage-key-non-ascii": "stage, with the key \"café/雪.txt\"",
+ "operations/s3/stage-key-percent": "stage, with the key \"percent%20.txt\"",
+ "operations/s3/stage-key-plus": "stage, with the key \"plus+plus.txt\"",
+ "operations/s3/stage-key-question": "stage, with the key \"question?mark.txt\"",
+ "operations/s3/stage-key-space": "stage, with the key \"space name.txt\"",
+ "operations/s3/stage-key-trailing-slash": "stage, with the key \"trailing-slash/\"",
+ "operations/s3/stage-last": "stage last",
+ "operations/s3/stage-part-10000": "Part numbers run from 1 to 10,000. Stage part 10,000; only 0 and 10,001 may be refused.",
+ "operations/s3/stage-part-10001": "stage part 10001",
+ "operations/s3/stage-part-zero": "stage part zero",
+ "operations/s3/stage-unknown-upload": "stage unknown upload",
+ "operations/s3/staged": "staged",
+ "operations/s3/staged-after-abort": "staged after abort",
+ "operations/s3/staged-replacement": "staged replacement",
+ "operations/s3/staged-unknown-upload": "staged unknown upload",
+ "operations/s3/start": "start",
+ "operations/s3/start-bucket-missing": "start bucket missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "operations/s3/start-content-properties": "Start a multipart upload with content properties, which the completed object keeps",
+ "operations/s3/start-unauthenticated": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "operations/s3/start-with-storage-class": "Start a multipart upload into a storage class, named in x-amz-storage-class",
+ "operations/s3/start-with-tags": "Start a multipart upload with tags, sent URL-encoded in x-amz-tagging, which the completed object keeps"
+ },
"profiles": {
"azure": {
"provider": "azure",
@@ -163,7 +1241,7 @@
"optional": true,
"rule": {
"is": "matches",
- "pattern": "[0-9a-f]{64}|UNSIGNED-PAYLOAD"
+ "pattern": "[0-9a-f]{64}|UNSIGNED-PAYLOAD|STREAMING-UNSIGNED-PAYLOAD-TRAILER"
}
},
{
@@ -224,7 +1302,7 @@
"optional": true,
"rule": {
"is": "matches",
- "pattern": "[0-9a-f]{64}|UNSIGNED-PAYLOAD"
+ "pattern": "[0-9a-f]{64}|UNSIGNED-PAYLOAD|STREAMING-UNSIGNED-PAYLOAD-TRAILER"
}
},
{
@@ -268,7 +1346,7 @@
"id": "operations/azure/commit-container-missing",
"profile": "azure",
"lane": "core",
- "purpose": "commit container missing",
+ "purpose": "commit container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
@@ -361,6 +1439,14 @@
"is": "equal",
"value": "ContainerNotFound"
}
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
+ }
}
],
"refusal": null
@@ -2711,16 +3797,30 @@
"refusal": null
},
{
- "id": "operations/azure/delete-accepted",
+ "id": "operations/azure/commit-content-properties",
"profile": "azure",
"lane": "core",
- "purpose": "delete accepted",
+ "purpose": "Commit a block list with content properties, sent as x-ms-blob-content-type, -language, -disposition and x-ms-blob-cache-control",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/remove/present.txt",
- "op": "delete"
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAy",
+ "kind": "latest"
+ }
+ ],
+ "cache_control": "max-age=3600",
+ "content_disposition": "attachment; filename=\"report.txt\"",
+ "content_language": "nl-NL",
+ "content_type": "text/plain; charset=utf-8",
+ "key": "object-tests/multipart/committed.bin",
+ "op": "azure.commit_blocks"
},
"exchanges": [
{
@@ -2732,7 +3832,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "PUT"
}
},
{
@@ -2740,28 +3840,73 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "/fixture/object-tests/multipart/committed.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDAy"
+ }
+ },
+ {
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "blocklist"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain; charset=utf-8"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-language",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "nl-NL"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename=\"report.txt\""
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-cache-control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 202,
+ "status": 201,
"headers": {
"date": {
"from": "now"
},
+ "etag": "\"fixture-be8efdb79010\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7848460Z"
},
"body": {
"encoding": "base64",
@@ -2780,21 +3925,48 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-be8efdb79010\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7848460Z"
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure/delete-accepted-key-question",
+ "id": "operations/azure/commit-with-tier",
"profile": "azure",
"lane": "core",
- "purpose": "delete accepted, with the key \"question?mark.txt\"",
+ "purpose": "Commit a block list into an access tier, named in x-ms-access-tier",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/question?mark.txt",
- "op": "delete"
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAy",
+ "kind": "latest"
+ }
+ ],
+ "key": "object-tests/multipart/committed.bin",
+ "op": "azure.commit_blocks",
+ "tier": "Cool"
},
"exchanges": [
{
@@ -2806,7 +3978,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "PUT"
}
},
{
@@ -2814,28 +3986,49 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/question?mark.txt"
+ "value": "/fixture/object-tests/multipart/committed.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDAy"
+ }
+ },
+ {
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "blocklist"
+ }
+ },
+ {
+ "at": "/headers/x-ms-access-tier",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Cool"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 202,
+ "status": 201,
"headers": {
"date": {
"from": "now"
},
+ "etag": "\"fixture-be8efdb79010\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7848460Z"
},
"body": {
"encoding": "base64",
@@ -2854,21 +4047,50 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-be8efdb79010\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7848460Z"
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure/delete-accepted-key-hash",
+ "id": "operations/azure/commit-with-tags",
"profile": "azure",
"lane": "core",
- "purpose": "delete accepted, with the key \"hash#tag.txt\"",
+ "purpose": "Commit a block list with blob index tags, sent URL-encoded in x-ms-tags",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/hash#tag.txt",
- "op": "delete"
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAy",
+ "kind": "latest"
+ }
+ ],
+ "key": "object-tests/multipart/committed.bin",
+ "op": "azure.commit_blocks",
+ "tags": {
+ "project": "object-tests"
+ }
},
"exchanges": [
{
@@ -2880,7 +4102,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "PUT"
}
},
{
@@ -2888,28 +4110,49 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/hash#tag.txt"
+ "value": "/fixture/object-tests/multipart/committed.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDAy"
+ }
+ },
+ {
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "blocklist"
+ }
+ },
+ {
+ "at": "/headers/x-ms-tags",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "project=object-tests"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 202,
+ "status": 201,
"headers": {
"date": {
"from": "now"
},
+ "etag": "\"fixture-be8efdb79010\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7848460Z"
},
"body": {
"encoding": "base64",
@@ -2928,20 +4171,36 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-be8efdb79010\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7848460Z"
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure/delete-accepted-key-percent",
+ "id": "operations/azure/delete-accepted",
"profile": "azure",
"lane": "core",
- "purpose": "delete accepted, with the key \"percent%20.txt\"",
+ "purpose": "delete accepted",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/percent%20.txt",
+ "key": "object-tests/remove/present.txt",
"op": "delete"
},
"exchanges": [
@@ -2962,7 +4221,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/percent%20.txt"
+ "value": "/fixture/object-tests/remove/present.txt"
}
},
{
@@ -3007,15 +4266,15 @@
"refusal": null
},
{
- "id": "operations/azure/delete-accepted-key-plus",
+ "id": "operations/azure/delete-accepted-key-question",
"profile": "azure",
"lane": "core",
- "purpose": "delete accepted, with the key \"plus+plus.txt\"",
+ "purpose": "delete accepted, with the key \"question?mark.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/plus+plus.txt",
+ "key": "object-tests/keys/question?mark.txt",
"op": "delete"
},
"exchanges": [
@@ -3036,7 +4295,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/plus+plus.txt"
+ "value": "/fixture/object-tests/keys/question?mark.txt"
}
},
{
@@ -3081,15 +4340,15 @@
"refusal": null
},
{
- "id": "operations/azure/delete-accepted-key-space",
+ "id": "operations/azure/delete-accepted-key-hash",
"profile": "azure",
"lane": "core",
- "purpose": "delete accepted, with the key \"space name.txt\"",
+ "purpose": "delete accepted, with the key \"hash#tag.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/space name.txt",
+ "key": "object-tests/keys/hash#tag.txt",
"op": "delete"
},
"exchanges": [
@@ -3110,7 +4369,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/space name.txt"
+ "value": "/fixture/object-tests/keys/hash#tag.txt"
}
},
{
@@ -3155,15 +4414,15 @@
"refusal": null
},
{
- "id": "operations/azure/delete-accepted-key-non-ascii",
+ "id": "operations/azure/delete-accepted-key-percent",
"profile": "azure",
"lane": "core",
- "purpose": "delete accepted, with the key \"café/雪.txt\"",
+ "purpose": "delete accepted, with the key \"percent%20.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/café/雪.txt",
+ "key": "object-tests/keys/percent%20.txt",
"op": "delete"
},
"exchanges": [
@@ -3184,7 +4443,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/café/雪.txt"
+ "value": "/fixture/object-tests/keys/percent%20.txt"
}
},
{
@@ -3229,15 +4488,15 @@
"refusal": null
},
{
- "id": "operations/azure/delete-accepted-key-double-slash",
+ "id": "operations/azure/delete-accepted-key-plus",
"profile": "azure",
"lane": "core",
- "purpose": "delete accepted, with the key \"double//slash.txt\"",
+ "purpose": "delete accepted, with the key \"plus+plus.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/double//slash.txt",
+ "key": "object-tests/keys/plus+plus.txt",
"op": "delete"
},
"exchanges": [
@@ -3258,7 +4517,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/double//slash.txt"
+ "value": "/fixture/object-tests/keys/plus+plus.txt"
}
},
{
@@ -3303,15 +4562,15 @@
"refusal": null
},
{
- "id": "operations/azure/delete-accepted-key-trailing-slash",
+ "id": "operations/azure/delete-accepted-key-space",
"profile": "azure",
"lane": "core",
- "purpose": "delete accepted, with the key \"trailing-slash/\"",
+ "purpose": "delete accepted, with the key \"space name.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/trailing-slash/",
+ "key": "object-tests/keys/space name.txt",
"op": "delete"
},
"exchanges": [
@@ -3332,7 +4591,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/trailing-slash/"
+ "value": "/fixture/object-tests/keys/space name.txt"
}
},
{
@@ -3377,20 +4636,16 @@
"refusal": null
},
{
- "id": "operations/azure/delete-many",
+ "id": "operations/azure/delete-accepted-key-non-ascii",
"profile": "azure",
"lane": "core",
- "purpose": "Delete several objects in one batch and report each result",
+ "purpose": "delete accepted, with the key \"café/雪.txt\"",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "keys": [
- "object-tests/batch/a.txt",
- "object-tests/batch/b.txt",
- "object-tests/batch/absent.txt"
- ],
- "op": "delete_many"
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -3402,7 +4657,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "DELETE"
}
},
{
@@ -3410,39 +4665,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/headers/content-type",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "(?s).*DELETE (?:https?://[^/]+)?/fixture/object-tests/batch/a\\.txt HTTP/1\\.1.*DELETE (?:https?://[^/]+)?/fixture/object-tests/batch/b\\.txt HTTP/1\\.1.*DELETE (?:https?://[^/]+)?/fixture/object-tests/batch/absent\\.txt HTTP/1\\.1.*"
- }
- },
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
+ "value": "/fixture/object-tests/keys/café/雪.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "batch"
+ "value": ""
}
}
],
@@ -3451,16 +4682,16 @@
"response": {
"status": 202,
"headers": {
- "content-type": "multipart/mixed; boundary=batchresponse_fixture",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 0\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture-0\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\nServer: Windows-Azure-Blob/1.0\r\n\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 1\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture-1\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\nServer: Windows-Azure-Blob/1.0\r\n\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 2\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture-2\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\nServer: Windows-Azure-Blob/1.0\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture--"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -3474,46 +4705,20 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/deleted",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": [
- "object-tests/batch/a.txt",
- "object-tests/batch/b.txt"
- ]
- }
- },
- {
- "at": "/value/errors",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": [
- {
- "code": "BlobNotFound",
- "key": "object-tests/batch/absent.txt",
- "status": 404
- }
- ]
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/delete-leased-if-match-without-lease-id",
+ "id": "operations/azure/delete-accepted-key-double-slash",
"profile": "azure",
"lane": "core",
- "purpose": "Refuse to delete a leased object whose If-Match holds but that names no lease ID",
+ "purpose": "delete accepted, with the key \"double//slash.txt\"",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "if_match": "\"fixture-etag\"",
- "key": "object-tests/leases/object.txt",
+ "key": "object-tests/keys/double//slash.txt",
"op": "delete"
},
"exchanges": [
@@ -3534,7 +4739,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "/fixture/object-tests/keys/double//slash.txt"
}
},
{
@@ -3544,30 +4749,22 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-etag\""
- }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "LeaseIdMissing"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "LeaseIdMissingFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -3580,38 +4777,22 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "LeaseIdMissing"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/delete-leased-without-lease-id",
+ "id": "operations/azure/delete-accepted-key-trailing-slash",
"profile": "azure",
"lane": "core",
- "purpose": "Refuse to delete a leased object without its lease ID",
+ "purpose": "delete accepted, with the key \"trailing-slash/\"",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/leases/object.txt",
+ "key": "object-tests/keys/trailing-slash/",
"op": "delete"
},
"exchanges": [
@@ -3632,7 +4813,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "/fixture/object-tests/keys/trailing-slash/"
}
},
{
@@ -3647,17 +4828,17 @@
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "LeaseIdMissing"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "LeaseIdMissingFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -3670,41 +4851,27 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "LeaseIdMissing"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/delete-server-busy",
+ "id": "operations/azure/delete-many",
"profile": "azure",
"lane": "core",
- "purpose": "Report a 503 ServerBusy answer as an error, after at most 5 retries",
+ "purpose": "Delete several objects in one batch and report each result",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
],
- "origin": "transient",
"call": {
- "key": "object-tests/remove/present.txt",
- "op": "delete"
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -3716,7 +4883,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "POST"
}
},
{
@@ -3724,86 +4891,129 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ServerBusy"
},
- "body": {
- "encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "batch"
}
},
{
- "at": "/body_base64",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
"date": {
"from": "now"
- },
- "x-ms-error-code": "ServerBusy"
+ }
},
"body": {
"encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
+ "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 0\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture-0\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\nServer: Windows-Azure-Blob/1.0\r\n\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 1\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture-1\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\nServer: Windows-Azure-Blob/1.0\r\n\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 2\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture-2\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\nServer: Windows-Azure-Blob/1.0\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture--"
+ },
+ "framing": "chunked"
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/deleted",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt"
+ ]
+ }
},
+ {
+ "at": "/value/errors",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/absent.txt",
+ "status": 404
+ }
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-many-denied",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report each deletion of a batch that Azure refuses inside its 202 answer, here every one with 403 AuthorizationPermissionMismatch, as that key's error, not as deleted",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
+ ],
+ "call": {
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -3813,7 +5023,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "POST"
}
},
{
@@ -3821,87 +5031,138 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ServerBusy"
},
- "body": {
- "encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
- }
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "batch"
}
},
{
- "at": "/body_base64",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
"date": {
"from": "now"
- },
- "x-ms-error-code": "ServerBusy"
+ }
},
"body": {
"encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
+ "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 0\r\n\r\nHTTP/1.1 403 This request is not authorized to perform this operation using this permission.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: AuthorizationPermissionMismatch\r\nx-ms-version: 2023-11-03\r\nContent-Length: 129\r\nContent-Type: application/xml\r\n\r\nAuthorizationPermissionMismatchFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 1\r\n\r\nHTTP/1.1 403 This request is not authorized to perform this operation using this permission.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: AuthorizationPermissionMismatch\r\nx-ms-version: 2023-11-03\r\nContent-Length: 129\r\nContent-Type: application/xml\r\n\r\nAuthorizationPermissionMismatchFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 2\r\n\r\nHTTP/1.1 403 This request is not authorized to perform this operation using this permission.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: AuthorizationPermissionMismatch\r\nx-ms-version: 2023-11-03\r\nContent-Length: 129\r\nContent-Type: application/xml\r\n\r\nAuthorizationPermissionMismatchFixture error\r\n--batchresponse_fixture--"
+ },
+ "framing": "chunked"
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/deleted",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": []
+ }
},
+ {
+ "at": "/value/errors",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ {
+ "code": "AuthorizationPermissionMismatch",
+ "key": "object-tests/batch/a.txt",
+ "status": 403
+ },
+ {
+ "code": "AuthorizationPermissionMismatch",
+ "key": "object-tests/batch/b.txt",
+ "status": 403
+ },
+ {
+ "code": "AuthorizationPermissionMismatch",
+ "key": "object-tests/batch/absent.txt",
+ "status": 403
+ }
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-many-answers-out-of-order",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Match each part of a batch answer to its deletion by Content-ID, which links them, not by position. Azure has answered every recorded batch in order, up to 256 parts; this answer is written by hand",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
+ ],
+ "origin": "constructed",
+ "derived_from": "operations/azure/delete-many",
+ "call": {
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -3911,7 +5172,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "POST"
}
},
{
@@ -3919,86 +5180,73 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ServerBusy"
},
- "body": {
- "encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
- }
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "batch"
}
},
{
- "at": "/body_base64",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
"date": {
"from": "now"
- },
- "x-ms-error-code": "ServerBusy"
+ }
},
"body": {
"encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
+ "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 2\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 0\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\n\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 1\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\n\r\n--batchresponse_fixture--"
+ },
+ "framing": "chunked"
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -4007,40 +5255,54 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/deleted",
"optional": false,
"rule": {
"is": "equal",
- "value": 503
+ "value": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt"
+ ]
}
},
{
- "at": "/code",
+ "at": "/value/errors",
"optional": false,
"rule": {
"is": "equal",
- "value": "ServerBusy"
+ "value": [
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/absent.txt",
+ "status": 404
+ }
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/delete-if-unmodified-since-past",
+ "id": "operations/azure/delete-many-lf-line-endings",
"profile": "azure",
"lane": "core",
- "purpose": "Refuse a delete with 412 when the object changed after If-Unmodified-Since",
+ "purpose": "Read a batch answer whose lines end in LF alone correctly, or report it as an error, but never half-read it. Azure has not been seen to send it: HTTP and multipart require CRLF. This answer is the recorded one with every CR removed",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
],
+ "origin": "constructed",
+ "derived_from": "operations/azure/delete-many",
"call": {
- "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/remove/present.txt",
- "op": "delete"
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -4052,7 +5314,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "POST"
}
},
{
@@ -4060,41 +5322,70 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
+ }
+ },
+ {
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "container"
}
},
{
- "at": "/headers/if-unmodified-since",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ "value": "batch"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
"date": {
"from": "now"
- },
- "x-ms-error-code": "ConditionNotMet"
+ }
},
"body": {
"encoding": "utf8",
- "data": "ConditionNotMetFixture error"
- }
+ "data": "--batchresponse_fixture\nContent-Type: application/http\nContent-ID: 0\n\nHTTP/1.1 202 Accepted\nx-ms-request-id: fixture\nx-ms-delete-type-permanent: true\nx-ms-version: 2023-11-03\n\n--batchresponse_fixture\nContent-Type: application/http\nContent-ID: 1\n\nHTTP/1.1 202 Accepted\nx-ms-request-id: fixture\nx-ms-delete-type-permanent: true\nx-ms-version: 2023-11-03\n\n--batchresponse_fixture\nContent-Type: application/http\nContent-ID: 2\n\nHTTP/1.1 404 The specified blob does not exist.\nx-ms-request-id: fixture\nx-ms-error-code: BlobNotFound\nx-ms-version: 2023-11-03\nContent-Length: 110\nContent-Type: application/xml\n\nBlobNotFoundFixture error\n--batchresponse_fixture--"
+ },
+ "framing": "chunked"
}
}
]
@@ -4105,40 +5396,58 @@
"at": "/outcome",
"optional": false,
"rule": {
- "is": "equal",
- "value": "error"
+ "is": "one_of",
+ "values": [
+ "ok",
+ "error"
+ ]
}
},
{
- "at": "/status",
- "optional": false,
+ "at": "/value/deleted",
+ "optional": true,
"rule": {
"is": "equal",
- "value": 412
+ "value": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt"
+ ]
}
},
{
- "at": "/code",
- "optional": false,
+ "at": "/value/errors",
+ "optional": true,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": [
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/absent.txt",
+ "status": 404
+ }
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/delete-container-missing",
+ "id": "operations/azure/delete-many-without-content-id",
"profile": "azure",
"lane": "core",
- "purpose": "delete container missing",
+ "purpose": "Report a batch answer whose parts carry no Content-ID as an error. Without one, only the order of the parts would link a result to its key, and a guess could report one key deleted when another failed. Azure echoes the Content-ID of every subrequest; this answer is the recorded one with them removed",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
],
+ "origin": "constructed",
+ "derived_from": "operations/azure/delete-many",
"call": {
- "key": "object.txt",
- "op": "delete"
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -4150,7 +5459,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "POST"
}
},
{
@@ -4158,33 +5467,70 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
+ }
+ },
+ {
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "batch"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
"date": {
"from": "now"
- },
- "x-ms-error-code": "ContainerNotFound"
+ }
},
"body": {
"encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
- }
+ "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\n\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\n\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture--"
+ },
+ "framing": "chunked"
}
}
]
@@ -4198,38 +5544,27 @@
"is": "equal",
"value": "error"
}
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ContainerNotFound"
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/delete-current-version",
+ "id": "operations/azure/delete-many-server-busy",
"profile": "azure",
"lane": "core",
- "purpose": "delete current version",
+ "purpose": "Report a batch that Azure answers as a whole with 503 ServerBusy as an error, never as deleted keys. A client may retry up to five times first",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
],
+ "origin": "transient",
+ "derived_from": "operations/azure/delete-many",
"call": {
- "key": "object-tests/versions-mtydohr2/object.txt",
- "op": "delete",
- "version": "2024-01-01T00:00:00.3326281Z"
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -4241,7 +5576,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "POST"
}
},
{
@@ -4249,88 +5584,74 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
+ }
+ },
+ {
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "container"
}
},
{
- "at": "/query/versionid",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.3326281Z"
+ "value": "batch"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 403,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "OperationNotAllowedOnRootBlob"
+ "x-ms-error-code": "ServerBusy"
},
"body": {
"encoding": "utf8",
- "data": "OperationNotAllowedOnRootBlobFixture error"
+ "data": "ServerBusyFixture error"
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 403
- }
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "OperationNotAllowedOnRootBlob"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/delete-if-match-current",
- "profile": "azure",
- "lane": "core",
- "purpose": "delete if match current",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "if_match": "\"fixture-6898e7e8471f\"",
- "key": "object-tests/remove/conditional.txt",
- "op": "delete"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -4340,7 +5661,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "POST"
}
},
{
@@ -4348,71 +5669,75 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/conditional.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
+ }
+ },
+ {
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "container"
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6898e7e8471f\""
+ "value": "batch"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 202,
+ "status": 503,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-error-code": "ServerBusy"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "ServerBusyFixture error"
}
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/delete-missing",
- "profile": "azure",
- "lane": "core",
- "purpose": "delete missing",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/remove/absent.txt",
- "op": "delete"
- },
- "exchanges": [
+ ],
+ "optional": true
+ },
{
"alternatives": [
{
@@ -4422,7 +5747,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "POST"
}
},
{
@@ -4430,80 +5755,75 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/absent.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
+ }
+ },
+ {
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "batch"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobNotFound"
+ "x-ms-error-code": "ServerBusy"
},
"body": {
"encoding": "utf8",
- "data": "BlobNotFoundFixture error"
+ "data": "ServerBusyFixture error"
}
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlobNotFound"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/delete-precondition-failed",
- "profile": "azure",
- "lane": "core",
- "purpose": "delete precondition failed",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "if_match": "\"fixture-088e5dc109cf\"",
- "key": "object-tests/remove/conditional.txt",
- "op": "delete"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -4513,7 +5833,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "POST"
}
},
{
@@ -4521,91 +5841,75 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/conditional.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
+ }
+ },
+ {
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "container"
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-088e5dc109cf\""
+ "value": "batch"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ConditionNotMet"
+ "x-ms-error-code": "ServerBusy"
},
"body": {
"encoding": "utf8",
- "data": "ConditionNotMetFixture error"
+ "data": "ServerBusyFixture error"
}
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ConditionNotMet"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/delete-precondition-failed-code-in-body",
- "profile": "azure",
- "lane": "core",
- "purpose": "delete precondition failed, with the error code only in the XML body",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
- ],
- "origin": "constructed",
- "call": {
- "if_match": "\"fixture-088e5dc109cf\"",
- "key": "object-tests/remove/conditional.txt",
- "op": "delete"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -4615,7 +5919,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "POST"
}
},
{
@@ -4623,185 +5927,75 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/conditional.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
+ }
+ },
+ {
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "container"
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-088e5dc109cf\""
+ "value": "batch"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "x-ms-error-code": "ServerBusy"
},
"body": {
"encoding": "utf8",
- "data": "ConditionNotMetFixture error"
+ "data": "ServerBusyFixture error"
}
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ConditionNotMet"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/delete-previous-version",
- "profile": "azure",
- "lane": "core",
- "purpose": "delete previous version",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/versions-mtydohr2/object.txt",
- "op": "delete",
- "version": "2024-01-01T00:00:00.2318906Z"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/versionid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.2318906Z"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 403,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "OperationNotAllowedOnAutomaticSnapshot"
- },
- "body": {
- "encoding": "utf8",
- "data": "OperationNotAllowedOnAutomaticSnapshotFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 403
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "OperationNotAllowedOnAutomaticSnapshot"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/delete-refused-for-snapshots",
- "profile": "azure",
- "lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/snapshots/object.txt",
- "op": "delete"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -4811,7 +6005,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "POST"
}
},
{
@@ -4819,126 +6013,74 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 409,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "SnapshotsPresent"
},
- "body": {
- "encoding": "utf8",
- "data": "SnapshotsPresentFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 409
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "SnapshotsPresent"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/delete-refused",
- "profile": "azure",
- "lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object.txt"
+ "value": "batch"
}
},
{
- "at": "/body_base64",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 403,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "AuthorizationPermissionMismatch"
+ "x-ms-error-code": "ServerBusy"
},
"body": {
"encoding": "utf8",
- "data": "AuthorizationPermissionMismatchFixture error"
+ "data": "ServerBusyFixture error"
}
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -4955,7 +6097,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 403
+ "value": 503
}
},
{
@@ -4963,24 +6105,280 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "AuthorizationPermissionMismatch"
+ "value": "ServerBusy"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/delete-snapshot",
+ "id": "operations/azure/delete-many-256",
"profile": "azure",
"lane": "core",
- "purpose": "delete snapshot",
+ "purpose": "Delete 256 keys in one batch, the most Azure takes",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
],
"call": {
- "key": "object-tests/snapshots/object.txt",
- "op": "delete",
- "snapshot": "2024-01-01T00:00:00.8085866Z"
+ "keys": [
+ "object-tests/batch/many-0000.txt",
+ "object-tests/batch/many-0001.txt",
+ "object-tests/batch/many-0002.txt",
+ "object-tests/batch/many-0003.txt",
+ "object-tests/batch/many-0004.txt",
+ "object-tests/batch/many-0005.txt",
+ "object-tests/batch/many-0006.txt",
+ "object-tests/batch/many-0007.txt",
+ "object-tests/batch/many-0008.txt",
+ "object-tests/batch/many-0009.txt",
+ "object-tests/batch/many-0010.txt",
+ "object-tests/batch/many-0011.txt",
+ "object-tests/batch/many-0012.txt",
+ "object-tests/batch/many-0013.txt",
+ "object-tests/batch/many-0014.txt",
+ "object-tests/batch/many-0015.txt",
+ "object-tests/batch/many-0016.txt",
+ "object-tests/batch/many-0017.txt",
+ "object-tests/batch/many-0018.txt",
+ "object-tests/batch/many-0019.txt",
+ "object-tests/batch/many-0020.txt",
+ "object-tests/batch/many-0021.txt",
+ "object-tests/batch/many-0022.txt",
+ "object-tests/batch/many-0023.txt",
+ "object-tests/batch/many-0024.txt",
+ "object-tests/batch/many-0025.txt",
+ "object-tests/batch/many-0026.txt",
+ "object-tests/batch/many-0027.txt",
+ "object-tests/batch/many-0028.txt",
+ "object-tests/batch/many-0029.txt",
+ "object-tests/batch/many-0030.txt",
+ "object-tests/batch/many-0031.txt",
+ "object-tests/batch/many-0032.txt",
+ "object-tests/batch/many-0033.txt",
+ "object-tests/batch/many-0034.txt",
+ "object-tests/batch/many-0035.txt",
+ "object-tests/batch/many-0036.txt",
+ "object-tests/batch/many-0037.txt",
+ "object-tests/batch/many-0038.txt",
+ "object-tests/batch/many-0039.txt",
+ "object-tests/batch/many-0040.txt",
+ "object-tests/batch/many-0041.txt",
+ "object-tests/batch/many-0042.txt",
+ "object-tests/batch/many-0043.txt",
+ "object-tests/batch/many-0044.txt",
+ "object-tests/batch/many-0045.txt",
+ "object-tests/batch/many-0046.txt",
+ "object-tests/batch/many-0047.txt",
+ "object-tests/batch/many-0048.txt",
+ "object-tests/batch/many-0049.txt",
+ "object-tests/batch/many-0050.txt",
+ "object-tests/batch/many-0051.txt",
+ "object-tests/batch/many-0052.txt",
+ "object-tests/batch/many-0053.txt",
+ "object-tests/batch/many-0054.txt",
+ "object-tests/batch/many-0055.txt",
+ "object-tests/batch/many-0056.txt",
+ "object-tests/batch/many-0057.txt",
+ "object-tests/batch/many-0058.txt",
+ "object-tests/batch/many-0059.txt",
+ "object-tests/batch/many-0060.txt",
+ "object-tests/batch/many-0061.txt",
+ "object-tests/batch/many-0062.txt",
+ "object-tests/batch/many-0063.txt",
+ "object-tests/batch/many-0064.txt",
+ "object-tests/batch/many-0065.txt",
+ "object-tests/batch/many-0066.txt",
+ "object-tests/batch/many-0067.txt",
+ "object-tests/batch/many-0068.txt",
+ "object-tests/batch/many-0069.txt",
+ "object-tests/batch/many-0070.txt",
+ "object-tests/batch/many-0071.txt",
+ "object-tests/batch/many-0072.txt",
+ "object-tests/batch/many-0073.txt",
+ "object-tests/batch/many-0074.txt",
+ "object-tests/batch/many-0075.txt",
+ "object-tests/batch/many-0076.txt",
+ "object-tests/batch/many-0077.txt",
+ "object-tests/batch/many-0078.txt",
+ "object-tests/batch/many-0079.txt",
+ "object-tests/batch/many-0080.txt",
+ "object-tests/batch/many-0081.txt",
+ "object-tests/batch/many-0082.txt",
+ "object-tests/batch/many-0083.txt",
+ "object-tests/batch/many-0084.txt",
+ "object-tests/batch/many-0085.txt",
+ "object-tests/batch/many-0086.txt",
+ "object-tests/batch/many-0087.txt",
+ "object-tests/batch/many-0088.txt",
+ "object-tests/batch/many-0089.txt",
+ "object-tests/batch/many-0090.txt",
+ "object-tests/batch/many-0091.txt",
+ "object-tests/batch/many-0092.txt",
+ "object-tests/batch/many-0093.txt",
+ "object-tests/batch/many-0094.txt",
+ "object-tests/batch/many-0095.txt",
+ "object-tests/batch/many-0096.txt",
+ "object-tests/batch/many-0097.txt",
+ "object-tests/batch/many-0098.txt",
+ "object-tests/batch/many-0099.txt",
+ "object-tests/batch/many-0100.txt",
+ "object-tests/batch/many-0101.txt",
+ "object-tests/batch/many-0102.txt",
+ "object-tests/batch/many-0103.txt",
+ "object-tests/batch/many-0104.txt",
+ "object-tests/batch/many-0105.txt",
+ "object-tests/batch/many-0106.txt",
+ "object-tests/batch/many-0107.txt",
+ "object-tests/batch/many-0108.txt",
+ "object-tests/batch/many-0109.txt",
+ "object-tests/batch/many-0110.txt",
+ "object-tests/batch/many-0111.txt",
+ "object-tests/batch/many-0112.txt",
+ "object-tests/batch/many-0113.txt",
+ "object-tests/batch/many-0114.txt",
+ "object-tests/batch/many-0115.txt",
+ "object-tests/batch/many-0116.txt",
+ "object-tests/batch/many-0117.txt",
+ "object-tests/batch/many-0118.txt",
+ "object-tests/batch/many-0119.txt",
+ "object-tests/batch/many-0120.txt",
+ "object-tests/batch/many-0121.txt",
+ "object-tests/batch/many-0122.txt",
+ "object-tests/batch/many-0123.txt",
+ "object-tests/batch/many-0124.txt",
+ "object-tests/batch/many-0125.txt",
+ "object-tests/batch/many-0126.txt",
+ "object-tests/batch/many-0127.txt",
+ "object-tests/batch/many-0128.txt",
+ "object-tests/batch/many-0129.txt",
+ "object-tests/batch/many-0130.txt",
+ "object-tests/batch/many-0131.txt",
+ "object-tests/batch/many-0132.txt",
+ "object-tests/batch/many-0133.txt",
+ "object-tests/batch/many-0134.txt",
+ "object-tests/batch/many-0135.txt",
+ "object-tests/batch/many-0136.txt",
+ "object-tests/batch/many-0137.txt",
+ "object-tests/batch/many-0138.txt",
+ "object-tests/batch/many-0139.txt",
+ "object-tests/batch/many-0140.txt",
+ "object-tests/batch/many-0141.txt",
+ "object-tests/batch/many-0142.txt",
+ "object-tests/batch/many-0143.txt",
+ "object-tests/batch/many-0144.txt",
+ "object-tests/batch/many-0145.txt",
+ "object-tests/batch/many-0146.txt",
+ "object-tests/batch/many-0147.txt",
+ "object-tests/batch/many-0148.txt",
+ "object-tests/batch/many-0149.txt",
+ "object-tests/batch/many-0150.txt",
+ "object-tests/batch/many-0151.txt",
+ "object-tests/batch/many-0152.txt",
+ "object-tests/batch/many-0153.txt",
+ "object-tests/batch/many-0154.txt",
+ "object-tests/batch/many-0155.txt",
+ "object-tests/batch/many-0156.txt",
+ "object-tests/batch/many-0157.txt",
+ "object-tests/batch/many-0158.txt",
+ "object-tests/batch/many-0159.txt",
+ "object-tests/batch/many-0160.txt",
+ "object-tests/batch/many-0161.txt",
+ "object-tests/batch/many-0162.txt",
+ "object-tests/batch/many-0163.txt",
+ "object-tests/batch/many-0164.txt",
+ "object-tests/batch/many-0165.txt",
+ "object-tests/batch/many-0166.txt",
+ "object-tests/batch/many-0167.txt",
+ "object-tests/batch/many-0168.txt",
+ "object-tests/batch/many-0169.txt",
+ "object-tests/batch/many-0170.txt",
+ "object-tests/batch/many-0171.txt",
+ "object-tests/batch/many-0172.txt",
+ "object-tests/batch/many-0173.txt",
+ "object-tests/batch/many-0174.txt",
+ "object-tests/batch/many-0175.txt",
+ "object-tests/batch/many-0176.txt",
+ "object-tests/batch/many-0177.txt",
+ "object-tests/batch/many-0178.txt",
+ "object-tests/batch/many-0179.txt",
+ "object-tests/batch/many-0180.txt",
+ "object-tests/batch/many-0181.txt",
+ "object-tests/batch/many-0182.txt",
+ "object-tests/batch/many-0183.txt",
+ "object-tests/batch/many-0184.txt",
+ "object-tests/batch/many-0185.txt",
+ "object-tests/batch/many-0186.txt",
+ "object-tests/batch/many-0187.txt",
+ "object-tests/batch/many-0188.txt",
+ "object-tests/batch/many-0189.txt",
+ "object-tests/batch/many-0190.txt",
+ "object-tests/batch/many-0191.txt",
+ "object-tests/batch/many-0192.txt",
+ "object-tests/batch/many-0193.txt",
+ "object-tests/batch/many-0194.txt",
+ "object-tests/batch/many-0195.txt",
+ "object-tests/batch/many-0196.txt",
+ "object-tests/batch/many-0197.txt",
+ "object-tests/batch/many-0198.txt",
+ "object-tests/batch/many-0199.txt",
+ "object-tests/batch/many-0200.txt",
+ "object-tests/batch/many-0201.txt",
+ "object-tests/batch/many-0202.txt",
+ "object-tests/batch/many-0203.txt",
+ "object-tests/batch/many-0204.txt",
+ "object-tests/batch/many-0205.txt",
+ "object-tests/batch/many-0206.txt",
+ "object-tests/batch/many-0207.txt",
+ "object-tests/batch/many-0208.txt",
+ "object-tests/batch/many-0209.txt",
+ "object-tests/batch/many-0210.txt",
+ "object-tests/batch/many-0211.txt",
+ "object-tests/batch/many-0212.txt",
+ "object-tests/batch/many-0213.txt",
+ "object-tests/batch/many-0214.txt",
+ "object-tests/batch/many-0215.txt",
+ "object-tests/batch/many-0216.txt",
+ "object-tests/batch/many-0217.txt",
+ "object-tests/batch/many-0218.txt",
+ "object-tests/batch/many-0219.txt",
+ "object-tests/batch/many-0220.txt",
+ "object-tests/batch/many-0221.txt",
+ "object-tests/batch/many-0222.txt",
+ "object-tests/batch/many-0223.txt",
+ "object-tests/batch/many-0224.txt",
+ "object-tests/batch/many-0225.txt",
+ "object-tests/batch/many-0226.txt",
+ "object-tests/batch/many-0227.txt",
+ "object-tests/batch/many-0228.txt",
+ "object-tests/batch/many-0229.txt",
+ "object-tests/batch/many-0230.txt",
+ "object-tests/batch/many-0231.txt",
+ "object-tests/batch/many-0232.txt",
+ "object-tests/batch/many-0233.txt",
+ "object-tests/batch/many-0234.txt",
+ "object-tests/batch/many-0235.txt",
+ "object-tests/batch/many-0236.txt",
+ "object-tests/batch/many-0237.txt",
+ "object-tests/batch/many-0238.txt",
+ "object-tests/batch/many-0239.txt",
+ "object-tests/batch/many-0240.txt",
+ "object-tests/batch/many-0241.txt",
+ "object-tests/batch/many-0242.txt",
+ "object-tests/batch/many-0243.txt",
+ "object-tests/batch/many-0244.txt",
+ "object-tests/batch/many-0245.txt",
+ "object-tests/batch/many-0246.txt",
+ "object-tests/batch/many-0247.txt",
+ "object-tests/batch/many-0248.txt",
+ "object-tests/batch/many-0249.txt",
+ "object-tests/batch/many-0250.txt",
+ "object-tests/batch/many-0251.txt",
+ "object-tests/batch/many-0252.txt",
+ "object-tests/batch/many-0253.txt",
+ "object-tests/batch/many-0254.txt",
+ "object-tests/batch/many-0255.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -4992,7 +6390,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "POST"
}
},
{
@@ -5000,106 +6398,1064 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/snapshot",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.8085866Z"
+ "value": "/fixture"
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 202,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/delete-snapshots-only",
- "profile": "azure",
- "lane": "core",
- "purpose": "delete snapshots only",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/snapshots-only/object.txt",
- "op": "delete",
- "snapshots": "only"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": "DELETE"
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
},
{
- "at": "/path",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/snapshots-only/object.txt"
+ "value": "container"
}
},
{
- "at": "/body_base64",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "batch"
}
},
{
- "at": "/headers/x-ms-delete-snapshots",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "only"
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0000.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0001.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0002.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0003.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0004.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0005.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0006.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0007.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0008.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0009.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0010.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0011.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0012.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0013.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0014.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0015.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0016.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0017.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0018.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0019.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0020.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0021.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0022.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0023.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0024.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0025.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0026.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0027.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0028.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0029.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0030.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0031.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0032.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0033.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0034.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0035.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0036.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0037.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0038.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0039.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0040.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0041.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0042.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0043.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0044.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0045.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0046.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0047.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0048.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0049.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0050.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0051.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0052.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0053.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0054.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0055.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0056.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0057.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0058.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0059.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0060.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0061.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0062.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0063.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0064.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0065.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0066.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0067.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0068.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0069.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0070.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0071.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0072.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0073.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0074.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0075.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0076.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0077.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0078.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0079.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0080.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0081.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0082.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0083.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0084.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0085.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0086.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0087.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0088.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0089.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0090.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0091.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0092.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0093.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0094.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0095.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0096.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0097.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0098.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0099.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0100.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0101.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0102.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0103.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0104.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0105.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0106.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0107.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0108.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0109.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0110.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0111.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0112.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0113.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0114.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0115.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0116.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0117.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0118.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0119.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0120.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0121.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0122.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0123.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0124.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0125.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0126.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0127.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0128.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0129.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0130.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0131.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0132.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0133.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0134.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0135.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0136.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0137.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0138.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0139.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0140.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0141.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0142.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0143.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0144.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0145.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0146.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0147.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0148.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0149.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0150.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0151.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0152.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0153.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0154.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0155.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0156.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0157.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0158.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0159.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0160.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0161.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0162.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0163.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0164.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0165.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0166.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0167.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0168.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0169.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0170.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0171.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0172.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0173.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0174.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0175.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0176.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0177.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0178.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0179.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0180.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0181.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0182.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0183.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0184.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0185.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0186.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0187.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0188.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0189.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0190.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0191.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0192.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0193.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0194.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0195.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0196.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0197.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0198.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0199.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0200.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0201.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0202.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0203.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0204.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0205.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0206.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0207.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0208.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0209.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0210.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0211.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0212.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0213.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0214.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0215.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0216.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0217.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0218.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0219.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0220.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0221.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0222.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0223.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0224.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0225.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0226.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0227.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0228.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0229.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0230.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0231.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0232.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0233.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0234.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0235.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0236.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0237.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0238.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0239.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0240.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0241.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0242.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0243.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0244.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0245.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0246.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0247.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0248.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0249.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0250.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0251.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0252.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0253.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0254.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0255.txt"
+ }
+ ]
}
}
],
@@ -5108,595 +7464,16 @@
"response": {
"status": 202,
"headers": {
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/delete-unauthenticated",
- "profile": "azure",
- "lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/remove/absent.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/remove/absent.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 401,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "InvalidAuthenticationInfo"
},
"body": {
"encoding": "utf8",
- "data": "InvalidAuthenticationInfoFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 401
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidAuthenticationInfo"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/delete-versioned-object",
- "profile": "azure",
- "lane": "core",
- "purpose": "delete versioned object",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/versions-mtydohr2/deleted.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/versions-mtydohr2/deleted.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 202,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/delete-with-snapshots",
- "profile": "azure",
- "lane": "core",
- "purpose": "delete with snapshots",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/snapshots-all/object.txt",
- "op": "delete",
- "snapshots": "include"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/snapshots-all/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-ms-delete-snapshots",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "include"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 202,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/get-after-snapshots-deleted",
- "profile": "azure",
- "lane": "core",
- "purpose": "get after snapshots deleted",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/snapshots-only/object.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/snapshots-only/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "TYtghPPRZ7dsrGaiKpG+Ag==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-44077842caa7\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.6170785Z"
- },
- "body": {
- "encoding": "base64",
- "data": "a2VwdA=="
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-44077842caa7\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 4
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "TYtghPPRZ7dsrGaiKpG+Ag=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.6170785Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "a2VwdA=="
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/get-committed-nothing",
- "profile": "azure",
- "lane": "core",
- "purpose": "get committed nothing",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/multipart/empty.bin",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/multipart/empty.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-265df060a55b\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.6728312Z"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-265df060a55b\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.6728312Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/get-committed-over-whole-object",
- "profile": "azure",
- "lane": "core",
- "purpose": "get committed over whole object",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/multipart/over.bin",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/multipart/over.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-d09c03f972e2\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.8049977Z"
+ "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 0\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 1\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 2\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 3\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 4\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 5\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 6\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 7\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 8\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 9\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 10\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 11\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 12\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 13\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 14\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 15\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 16\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 17\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 18\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 19\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 20\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 21\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 22\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 23\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 24\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 25\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 26\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 27\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 28\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 29\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 30\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 31\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 32\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 33\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 34\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 35\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 36\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 37\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 38\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 39\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 40\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 41\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 42\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 43\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 44\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 45\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 46\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 47\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 48\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 49\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 50\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 51\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 52\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 53\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 54\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 55\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 56\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 57\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 58\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 59\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 60\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 61\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 62\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 63\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 64\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 65\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 66\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 67\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 68\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 69\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 70\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 71\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 72\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 73\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 74\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 75\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 76\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 77\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 78\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 79\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 80\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 81\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 82\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 83\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 84\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 85\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 86\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 87\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 88\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 89\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 90\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 91\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 92\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 93\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 94\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 95\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 96\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 97\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 98\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 99\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 100\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 101\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 102\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 103\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 104\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 105\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 106\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 107\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 108\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 109\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 110\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 111\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 112\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 113\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 114\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 115\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 116\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 117\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 118\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 119\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 120\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 121\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 122\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 123\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 124\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 125\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 126\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 127\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 128\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 129\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 130\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 131\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 132\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 133\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 134\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 135\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 136\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 137\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 138\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 139\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 140\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 141\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 142\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 143\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 144\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 145\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 146\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 147\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 148\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 149\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 150\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 151\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 152\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 153\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 154\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 155\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 156\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 157\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 158\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 159\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 160\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 161\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 162\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 163\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 164\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 165\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 166\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 167\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 168\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 169\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 170\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 171\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 172\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 173\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 174\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 175\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 176\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 177\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 178\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 179\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 180\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 181\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 182\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 183\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 184\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 185\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 186\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 187\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 188\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 189\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 190\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 191\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 192\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 193\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 194\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 195\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 196\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 197\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 198\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 199\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 200\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 201\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 202\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 203\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 204\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 205\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 206\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 207\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 208\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 209\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 210\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 211\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 212\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 213\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 214\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 215\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 216\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 217\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 218\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 219\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 220\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 221\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 222\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 223\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 224\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 225\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 226\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 227\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 228\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 229\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 230\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 231\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 232\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 233\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 234\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 235\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 236\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 237\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 238\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 239\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 240\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 241\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 242\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 243\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 244\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 245\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 246\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 247\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 248\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 249\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 250\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 251\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 252\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 253\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 254\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 255\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture--"
},
- "body": {
- "encoding": "base64",
- "data": "YmxvY2s="
- }
+ "framing": "chunked"
}
}
]
@@ -5712,111 +7489,26771 @@
}
},
{
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-d09c03f972e2\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 5
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/version",
+ "at": "/value/deleted",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.8049977Z"
+ "value": []
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/errors",
"optional": false,
"rule": {
"is": "equal",
- "value": "YmxvY2s="
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/get-committed",
- "profile": "azure",
- "lane": "core",
- "purpose": "get committed",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/multipart/committed.bin",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/multipart/committed.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-be8efdb79010\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7848460Z"
- },
- "body": {
- "encoding": "base64",
- "data": "Zmlyc3RzZWNvbmQ="
+ "value": [
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0000.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0001.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0002.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0003.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0004.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0005.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0006.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0007.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0008.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0009.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0010.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0011.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0012.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0013.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0014.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0015.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0016.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0017.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0018.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0019.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0020.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0021.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0022.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0023.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0024.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0025.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0026.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0027.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0028.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0029.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0030.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0031.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0032.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0033.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0034.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0035.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0036.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0037.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0038.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0039.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0040.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0041.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0042.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0043.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0044.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0045.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0046.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0047.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0048.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0049.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0050.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0051.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0052.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0053.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0054.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0055.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0056.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0057.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0058.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0059.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0060.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0061.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0062.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0063.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0064.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0065.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0066.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0067.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0068.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0069.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0070.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0071.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0072.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0073.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0074.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0075.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0076.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0077.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0078.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0079.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0080.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0081.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0082.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0083.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0084.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0085.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0086.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0087.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0088.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0089.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0090.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0091.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0092.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0093.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0094.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0095.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0096.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0097.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0098.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0099.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0100.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0101.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0102.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0103.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0104.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0105.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0106.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0107.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0108.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0109.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0110.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0111.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0112.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0113.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0114.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0115.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0116.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0117.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0118.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0119.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0120.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0121.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0122.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0123.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0124.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0125.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0126.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0127.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0128.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0129.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0130.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0131.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0132.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0133.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0134.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0135.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0136.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0137.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0138.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0139.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0140.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0141.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0142.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0143.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0144.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0145.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0146.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0147.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0148.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0149.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0150.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0151.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0152.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0153.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0154.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0155.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0156.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0157.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0158.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0159.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0160.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0161.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0162.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0163.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0164.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0165.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0166.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0167.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0168.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0169.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0170.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0171.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0172.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0173.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0174.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0175.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0176.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0177.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0178.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0179.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0180.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0181.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0182.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0183.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0184.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0185.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0186.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0187.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0188.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0189.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0190.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0191.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0192.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0193.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0194.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0195.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0196.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0197.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0198.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0199.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0200.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0201.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0202.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0203.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0204.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0205.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0206.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0207.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0208.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0209.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0210.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0211.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0212.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0213.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0214.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0215.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0216.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0217.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0218.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0219.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0220.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0221.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0222.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0223.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0224.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0225.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0226.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0227.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0228.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0229.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0230.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0231.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0232.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0233.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0234.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0235.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0236.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0237.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0238.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0239.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0240.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0241.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0242.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0243.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0244.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0245.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0246.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0247.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0248.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0249.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0250.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0251.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0252.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0253.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0254.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0255.txt",
+ "status": 404
+ }
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-many-257",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report a batch of 257 deletions, one more than Azure takes, as an error. Azure answers 202 with one part and no Content-ID, 400 ExceedsMaxBatchRequestCount, for the whole batch, not one part per deletion. A client may refuse it before sending",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
+ ],
+ "call": {
+ "keys": [
+ "object-tests/batch/many-0000.txt",
+ "object-tests/batch/many-0001.txt",
+ "object-tests/batch/many-0002.txt",
+ "object-tests/batch/many-0003.txt",
+ "object-tests/batch/many-0004.txt",
+ "object-tests/batch/many-0005.txt",
+ "object-tests/batch/many-0006.txt",
+ "object-tests/batch/many-0007.txt",
+ "object-tests/batch/many-0008.txt",
+ "object-tests/batch/many-0009.txt",
+ "object-tests/batch/many-0010.txt",
+ "object-tests/batch/many-0011.txt",
+ "object-tests/batch/many-0012.txt",
+ "object-tests/batch/many-0013.txt",
+ "object-tests/batch/many-0014.txt",
+ "object-tests/batch/many-0015.txt",
+ "object-tests/batch/many-0016.txt",
+ "object-tests/batch/many-0017.txt",
+ "object-tests/batch/many-0018.txt",
+ "object-tests/batch/many-0019.txt",
+ "object-tests/batch/many-0020.txt",
+ "object-tests/batch/many-0021.txt",
+ "object-tests/batch/many-0022.txt",
+ "object-tests/batch/many-0023.txt",
+ "object-tests/batch/many-0024.txt",
+ "object-tests/batch/many-0025.txt",
+ "object-tests/batch/many-0026.txt",
+ "object-tests/batch/many-0027.txt",
+ "object-tests/batch/many-0028.txt",
+ "object-tests/batch/many-0029.txt",
+ "object-tests/batch/many-0030.txt",
+ "object-tests/batch/many-0031.txt",
+ "object-tests/batch/many-0032.txt",
+ "object-tests/batch/many-0033.txt",
+ "object-tests/batch/many-0034.txt",
+ "object-tests/batch/many-0035.txt",
+ "object-tests/batch/many-0036.txt",
+ "object-tests/batch/many-0037.txt",
+ "object-tests/batch/many-0038.txt",
+ "object-tests/batch/many-0039.txt",
+ "object-tests/batch/many-0040.txt",
+ "object-tests/batch/many-0041.txt",
+ "object-tests/batch/many-0042.txt",
+ "object-tests/batch/many-0043.txt",
+ "object-tests/batch/many-0044.txt",
+ "object-tests/batch/many-0045.txt",
+ "object-tests/batch/many-0046.txt",
+ "object-tests/batch/many-0047.txt",
+ "object-tests/batch/many-0048.txt",
+ "object-tests/batch/many-0049.txt",
+ "object-tests/batch/many-0050.txt",
+ "object-tests/batch/many-0051.txt",
+ "object-tests/batch/many-0052.txt",
+ "object-tests/batch/many-0053.txt",
+ "object-tests/batch/many-0054.txt",
+ "object-tests/batch/many-0055.txt",
+ "object-tests/batch/many-0056.txt",
+ "object-tests/batch/many-0057.txt",
+ "object-tests/batch/many-0058.txt",
+ "object-tests/batch/many-0059.txt",
+ "object-tests/batch/many-0060.txt",
+ "object-tests/batch/many-0061.txt",
+ "object-tests/batch/many-0062.txt",
+ "object-tests/batch/many-0063.txt",
+ "object-tests/batch/many-0064.txt",
+ "object-tests/batch/many-0065.txt",
+ "object-tests/batch/many-0066.txt",
+ "object-tests/batch/many-0067.txt",
+ "object-tests/batch/many-0068.txt",
+ "object-tests/batch/many-0069.txt",
+ "object-tests/batch/many-0070.txt",
+ "object-tests/batch/many-0071.txt",
+ "object-tests/batch/many-0072.txt",
+ "object-tests/batch/many-0073.txt",
+ "object-tests/batch/many-0074.txt",
+ "object-tests/batch/many-0075.txt",
+ "object-tests/batch/many-0076.txt",
+ "object-tests/batch/many-0077.txt",
+ "object-tests/batch/many-0078.txt",
+ "object-tests/batch/many-0079.txt",
+ "object-tests/batch/many-0080.txt",
+ "object-tests/batch/many-0081.txt",
+ "object-tests/batch/many-0082.txt",
+ "object-tests/batch/many-0083.txt",
+ "object-tests/batch/many-0084.txt",
+ "object-tests/batch/many-0085.txt",
+ "object-tests/batch/many-0086.txt",
+ "object-tests/batch/many-0087.txt",
+ "object-tests/batch/many-0088.txt",
+ "object-tests/batch/many-0089.txt",
+ "object-tests/batch/many-0090.txt",
+ "object-tests/batch/many-0091.txt",
+ "object-tests/batch/many-0092.txt",
+ "object-tests/batch/many-0093.txt",
+ "object-tests/batch/many-0094.txt",
+ "object-tests/batch/many-0095.txt",
+ "object-tests/batch/many-0096.txt",
+ "object-tests/batch/many-0097.txt",
+ "object-tests/batch/many-0098.txt",
+ "object-tests/batch/many-0099.txt",
+ "object-tests/batch/many-0100.txt",
+ "object-tests/batch/many-0101.txt",
+ "object-tests/batch/many-0102.txt",
+ "object-tests/batch/many-0103.txt",
+ "object-tests/batch/many-0104.txt",
+ "object-tests/batch/many-0105.txt",
+ "object-tests/batch/many-0106.txt",
+ "object-tests/batch/many-0107.txt",
+ "object-tests/batch/many-0108.txt",
+ "object-tests/batch/many-0109.txt",
+ "object-tests/batch/many-0110.txt",
+ "object-tests/batch/many-0111.txt",
+ "object-tests/batch/many-0112.txt",
+ "object-tests/batch/many-0113.txt",
+ "object-tests/batch/many-0114.txt",
+ "object-tests/batch/many-0115.txt",
+ "object-tests/batch/many-0116.txt",
+ "object-tests/batch/many-0117.txt",
+ "object-tests/batch/many-0118.txt",
+ "object-tests/batch/many-0119.txt",
+ "object-tests/batch/many-0120.txt",
+ "object-tests/batch/many-0121.txt",
+ "object-tests/batch/many-0122.txt",
+ "object-tests/batch/many-0123.txt",
+ "object-tests/batch/many-0124.txt",
+ "object-tests/batch/many-0125.txt",
+ "object-tests/batch/many-0126.txt",
+ "object-tests/batch/many-0127.txt",
+ "object-tests/batch/many-0128.txt",
+ "object-tests/batch/many-0129.txt",
+ "object-tests/batch/many-0130.txt",
+ "object-tests/batch/many-0131.txt",
+ "object-tests/batch/many-0132.txt",
+ "object-tests/batch/many-0133.txt",
+ "object-tests/batch/many-0134.txt",
+ "object-tests/batch/many-0135.txt",
+ "object-tests/batch/many-0136.txt",
+ "object-tests/batch/many-0137.txt",
+ "object-tests/batch/many-0138.txt",
+ "object-tests/batch/many-0139.txt",
+ "object-tests/batch/many-0140.txt",
+ "object-tests/batch/many-0141.txt",
+ "object-tests/batch/many-0142.txt",
+ "object-tests/batch/many-0143.txt",
+ "object-tests/batch/many-0144.txt",
+ "object-tests/batch/many-0145.txt",
+ "object-tests/batch/many-0146.txt",
+ "object-tests/batch/many-0147.txt",
+ "object-tests/batch/many-0148.txt",
+ "object-tests/batch/many-0149.txt",
+ "object-tests/batch/many-0150.txt",
+ "object-tests/batch/many-0151.txt",
+ "object-tests/batch/many-0152.txt",
+ "object-tests/batch/many-0153.txt",
+ "object-tests/batch/many-0154.txt",
+ "object-tests/batch/many-0155.txt",
+ "object-tests/batch/many-0156.txt",
+ "object-tests/batch/many-0157.txt",
+ "object-tests/batch/many-0158.txt",
+ "object-tests/batch/many-0159.txt",
+ "object-tests/batch/many-0160.txt",
+ "object-tests/batch/many-0161.txt",
+ "object-tests/batch/many-0162.txt",
+ "object-tests/batch/many-0163.txt",
+ "object-tests/batch/many-0164.txt",
+ "object-tests/batch/many-0165.txt",
+ "object-tests/batch/many-0166.txt",
+ "object-tests/batch/many-0167.txt",
+ "object-tests/batch/many-0168.txt",
+ "object-tests/batch/many-0169.txt",
+ "object-tests/batch/many-0170.txt",
+ "object-tests/batch/many-0171.txt",
+ "object-tests/batch/many-0172.txt",
+ "object-tests/batch/many-0173.txt",
+ "object-tests/batch/many-0174.txt",
+ "object-tests/batch/many-0175.txt",
+ "object-tests/batch/many-0176.txt",
+ "object-tests/batch/many-0177.txt",
+ "object-tests/batch/many-0178.txt",
+ "object-tests/batch/many-0179.txt",
+ "object-tests/batch/many-0180.txt",
+ "object-tests/batch/many-0181.txt",
+ "object-tests/batch/many-0182.txt",
+ "object-tests/batch/many-0183.txt",
+ "object-tests/batch/many-0184.txt",
+ "object-tests/batch/many-0185.txt",
+ "object-tests/batch/many-0186.txt",
+ "object-tests/batch/many-0187.txt",
+ "object-tests/batch/many-0188.txt",
+ "object-tests/batch/many-0189.txt",
+ "object-tests/batch/many-0190.txt",
+ "object-tests/batch/many-0191.txt",
+ "object-tests/batch/many-0192.txt",
+ "object-tests/batch/many-0193.txt",
+ "object-tests/batch/many-0194.txt",
+ "object-tests/batch/many-0195.txt",
+ "object-tests/batch/many-0196.txt",
+ "object-tests/batch/many-0197.txt",
+ "object-tests/batch/many-0198.txt",
+ "object-tests/batch/many-0199.txt",
+ "object-tests/batch/many-0200.txt",
+ "object-tests/batch/many-0201.txt",
+ "object-tests/batch/many-0202.txt",
+ "object-tests/batch/many-0203.txt",
+ "object-tests/batch/many-0204.txt",
+ "object-tests/batch/many-0205.txt",
+ "object-tests/batch/many-0206.txt",
+ "object-tests/batch/many-0207.txt",
+ "object-tests/batch/many-0208.txt",
+ "object-tests/batch/many-0209.txt",
+ "object-tests/batch/many-0210.txt",
+ "object-tests/batch/many-0211.txt",
+ "object-tests/batch/many-0212.txt",
+ "object-tests/batch/many-0213.txt",
+ "object-tests/batch/many-0214.txt",
+ "object-tests/batch/many-0215.txt",
+ "object-tests/batch/many-0216.txt",
+ "object-tests/batch/many-0217.txt",
+ "object-tests/batch/many-0218.txt",
+ "object-tests/batch/many-0219.txt",
+ "object-tests/batch/many-0220.txt",
+ "object-tests/batch/many-0221.txt",
+ "object-tests/batch/many-0222.txt",
+ "object-tests/batch/many-0223.txt",
+ "object-tests/batch/many-0224.txt",
+ "object-tests/batch/many-0225.txt",
+ "object-tests/batch/many-0226.txt",
+ "object-tests/batch/many-0227.txt",
+ "object-tests/batch/many-0228.txt",
+ "object-tests/batch/many-0229.txt",
+ "object-tests/batch/many-0230.txt",
+ "object-tests/batch/many-0231.txt",
+ "object-tests/batch/many-0232.txt",
+ "object-tests/batch/many-0233.txt",
+ "object-tests/batch/many-0234.txt",
+ "object-tests/batch/many-0235.txt",
+ "object-tests/batch/many-0236.txt",
+ "object-tests/batch/many-0237.txt",
+ "object-tests/batch/many-0238.txt",
+ "object-tests/batch/many-0239.txt",
+ "object-tests/batch/many-0240.txt",
+ "object-tests/batch/many-0241.txt",
+ "object-tests/batch/many-0242.txt",
+ "object-tests/batch/many-0243.txt",
+ "object-tests/batch/many-0244.txt",
+ "object-tests/batch/many-0245.txt",
+ "object-tests/batch/many-0246.txt",
+ "object-tests/batch/many-0247.txt",
+ "object-tests/batch/many-0248.txt",
+ "object-tests/batch/many-0249.txt",
+ "object-tests/batch/many-0250.txt",
+ "object-tests/batch/many-0251.txt",
+ "object-tests/batch/many-0252.txt",
+ "object-tests/batch/many-0253.txt",
+ "object-tests/batch/many-0254.txt",
+ "object-tests/batch/many-0255.txt",
+ "object-tests/batch/many-0256.txt"
+ ],
+ "op": "delete_many"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "batch"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0000.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0001.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0002.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0003.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0004.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0005.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0006.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0007.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0008.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0009.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0010.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0011.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0012.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0013.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0014.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0015.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0016.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0017.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0018.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0019.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0020.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0021.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0022.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0023.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0024.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0025.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0026.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0027.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0028.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0029.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0030.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0031.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0032.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0033.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0034.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0035.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0036.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0037.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0038.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0039.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0040.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0041.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0042.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0043.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0044.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0045.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0046.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0047.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0048.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0049.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0050.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0051.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0052.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0053.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0054.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0055.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0056.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0057.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0058.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0059.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0060.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0061.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0062.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0063.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0064.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0065.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0066.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0067.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0068.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0069.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0070.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0071.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0072.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0073.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0074.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0075.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0076.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0077.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0078.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0079.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0080.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0081.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0082.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0083.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0084.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0085.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0086.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0087.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0088.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0089.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0090.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0091.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0092.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0093.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0094.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0095.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0096.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0097.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0098.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0099.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0100.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0101.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0102.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0103.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0104.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0105.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0106.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0107.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0108.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0109.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0110.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0111.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0112.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0113.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0114.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0115.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0116.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0117.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0118.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0119.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0120.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0121.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0122.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0123.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0124.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0125.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0126.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0127.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0128.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0129.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0130.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0131.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0132.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0133.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0134.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0135.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0136.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0137.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0138.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0139.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0140.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0141.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0142.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0143.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0144.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0145.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0146.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0147.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0148.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0149.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0150.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0151.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0152.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0153.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0154.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0155.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0156.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0157.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0158.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0159.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0160.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0161.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0162.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0163.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0164.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0165.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0166.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0167.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0168.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0169.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0170.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0171.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0172.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0173.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0174.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0175.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0176.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0177.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0178.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0179.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0180.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0181.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0182.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0183.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0184.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0185.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0186.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0187.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0188.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0189.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0190.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0191.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0192.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0193.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0194.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0195.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0196.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0197.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0198.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0199.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0200.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0201.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0202.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0203.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0204.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0205.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0206.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0207.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0208.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0209.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0210.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0211.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0212.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0213.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0214.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0215.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0216.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0217.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0218.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0219.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0220.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0221.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0222.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0223.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0224.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0225.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0226.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0227.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0228.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0229.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0230.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0231.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0232.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0233.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0234.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0235.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0236.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0237.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0238.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0239.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0240.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0241.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0242.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0243.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0244.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0245.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0246.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0247.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0248.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0249.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0250.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0251.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0252.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0253.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0254.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0255.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0256.txt"
+ }
+ ]
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\n\r\nHTTP/1.1 400 The batch operation exceeds maximum number of allowed subrequests.\r\nx-ms-error-code: ExceedsMaxBatchRequestCount\r\nx-ms-request-id: fixture\r\nx-ms-version: 2023-11-03\r\nContent-Length: 125\r\nContent-Type: application/xml\r\n\r\nExceedsMaxBatchRequestCountFixture error\r\n--batchresponse_fixture--"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ExceedsMaxBatchRequestCount"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "keys"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "ExceedsMaxBatchRequestCount"
+ }
+ }
+ ]
+ },
+ {
+ "id": "operations/azure/delete-many-unauthenticated",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report a batch whose token Azure does not accept as one error for the whole batch, as Azure answers it, not as an answer per key",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
+ ],
+ "call": {
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "batch"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 401,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidAuthenticationInfo"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidAuthenticationInfoFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 401
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidAuthenticationInfo"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-many-container-missing",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report a batch in a missing container, which Azure answers 202 with 404 ContainerNotFound for each deletion, as that error for each key and none deleted, or as one error of kind container_not_found",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
+ ],
+ "call": {
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "batch"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 0\r\n\r\nHTTP/1.1 404 The specified container does not exist.\r\nx-ms-error-code: ContainerNotFound\r\nx-ms-request-id: fixture\r\nx-ms-version: 2023-11-03\r\nContent-Length: 115\r\nContent-Type: application/xml\r\n\r\nContainerNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 1\r\n\r\nHTTP/1.1 404 The specified container does not exist.\r\nx-ms-error-code: ContainerNotFound\r\nx-ms-request-id: fixture\r\nx-ms-version: 2023-11-03\r\nContent-Length: 115\r\nContent-Type: application/xml\r\n\r\nContainerNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 2\r\n\r\nHTTP/1.1 404 The specified container does not exist.\r\nx-ms-error-code: ContainerNotFound\r\nx-ms-request-id: fixture\r\nx-ms-version: 2023-11-03\r\nContent-Length: 115\r\nContent-Type: application/xml\r\n\r\nContainerNotFoundFixture error\r\n--batchresponse_fixture--"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "ok",
+ "error"
+ ]
+ }
+ },
+ {
+ "at": "/value/deleted",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": []
+ }
+ },
+ {
+ "at": "/value/errors",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": [
+ {
+ "code": "ContainerNotFound",
+ "key": "object-tests/batch/a.txt",
+ "status": 404
+ },
+ {
+ "code": "ContainerNotFound",
+ "key": "object-tests/batch/b.txt",
+ "status": 404
+ },
+ {
+ "code": "ContainerNotFound",
+ "key": "object-tests/batch/absent.txt",
+ "status": 404
+ }
+ ]
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-leased-if-match-without-lease-id",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Refuse to delete a leased object whose If-Match holds but that names no lease ID",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ ],
+ "call": {
+ "if_match": "\"fixture-etag\"",
+ "key": "object-tests/leases/object.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/leases/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "LeaseIdMissing"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "LeaseIdMissingFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "LeaseIdMissing"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-leased-without-lease-id",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Refuse to delete a leased object without its lease ID",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ ],
+ "call": {
+ "key": "object-tests/leases/object.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/leases/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "LeaseIdMissing"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "LeaseIdMissingFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "LeaseIdMissing"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-server-busy",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report a 503 ServerBusy answer as an error, after at most 5 retries",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ ],
+ "origin": "transient",
+ "call": {
+ "key": "object-tests/remove/present.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/remove/present.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/remove/present.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/remove/present.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/remove/present.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/remove/present.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/remove/present.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ],
+ "optional": true
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 503
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ServerBusy"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-if-unmodified-since-past",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Refuse a delete with 412 when the object changed after If-Unmodified-Since",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/remove/present.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/remove/present.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/if-unmodified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ConditionNotMet"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ConditionNotMetFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ConditionNotMet"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-container-missing",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "delete container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ContainerNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ContainerNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ContainerNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-current-version",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "delete current version",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/versions-mtydohr2/object.txt",
+ "op": "delete",
+ "version": "2024-01-01T00:00:00.3326281Z"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/versionid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.3326281Z"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 403,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "OperationNotAllowedOnRootBlob"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "OperationNotAllowedOnRootBlobFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 403
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "OperationNotAllowedOnRootBlob"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-if-match-current",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "delete if match current",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "if_match": "\"fixture-6898e7e8471f\"",
+ "key": "object-tests/remove/conditional.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/remove/conditional.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6898e7e8471f\""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-missing",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "delete missing. A client reports it as not_found: the object is absent",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/remove/absent.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/remove/absent.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "BlobNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "not_found"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-precondition-failed",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "delete precondition failed",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "if_match": "\"fixture-088e5dc109cf\"",
+ "key": "object-tests/remove/conditional.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/remove/conditional.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-088e5dc109cf\""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ConditionNotMet"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ConditionNotMetFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ConditionNotMet"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-precondition-failed-code-in-body",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "delete precondition failed, with the error code only in the XML body",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ ],
+ "origin": "constructed",
+ "call": {
+ "if_match": "\"fixture-088e5dc109cf\"",
+ "key": "object-tests/remove/conditional.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/remove/conditional.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-088e5dc109cf\""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ConditionNotMetFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ConditionNotMet"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-previous-version",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "delete previous version",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/versions-mtydohr2/object.txt",
+ "op": "delete",
+ "version": "2024-01-01T00:00:00.2318906Z"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/versionid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2318906Z"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 403,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "OperationNotAllowedOnAutomaticSnapshot"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "OperationNotAllowedOnAutomaticSnapshotFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 403
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "OperationNotAllowedOnAutomaticSnapshot"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-refused-for-snapshots",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/snapshots/object.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/snapshots/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "SnapshotsPresent"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "SnapshotsPresentFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 409
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "SnapshotsPresent"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-refused",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 403,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "AuthorizationPermissionMismatch"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "AuthorizationPermissionMismatchFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 403
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "AuthorizationPermissionMismatch"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-snapshot",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "delete snapshot",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/snapshots/object.txt",
+ "op": "delete",
+ "snapshot": "2024-01-01T00:00:00.8085866Z"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/snapshots/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/snapshot",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.8085866Z"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-snapshots-only",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "delete snapshots only",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/snapshots-only/object.txt",
+ "op": "delete",
+ "snapshots": "only"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/snapshots-only/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-delete-snapshots",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "only"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-unauthenticated",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/remove/absent.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/remove/absent.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 401,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidAuthenticationInfo"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidAuthenticationInfoFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 401
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidAuthenticationInfo"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-versioned-object",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "delete versioned object",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/versions-mtydohr2/deleted.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/versions-mtydohr2/deleted.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/delete-with-snapshots",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "delete with snapshots",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/snapshots-all/object.txt",
+ "op": "delete",
+ "snapshots": "include"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/snapshots-all/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-delete-snapshots",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "include"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-after-snapshots-deleted",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get after snapshots deleted",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/snapshots-only/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/snapshots-only/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "TYtghPPRZ7dsrGaiKpG+Ag==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-44077842caa7\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.6170785Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "a2VwdA=="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-44077842caa7\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 4
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "TYtghPPRZ7dsrGaiKpG+Ag=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.6170785Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "a2VwdA=="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-committed-nothing",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get committed nothing",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/multipart/empty.bin",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/empty.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-265df060a55b\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.6728312Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-265df060a55b\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.6728312Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-committed-over-whole-object",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get committed over whole object",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/multipart/over.bin",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/over.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-d09c03f972e2\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.8049977Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "YmxvY2s="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-d09c03f972e2\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 5
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.8049977Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YmxvY2s="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-committed",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get committed",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/multipart/committed.bin",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/committed.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-be8efdb79010\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7848460Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "Zmlyc3RzZWNvbmQ="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-be8efdb79010\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 11
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7848460Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Zmlyc3RzZWNvbmQ="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-container-missing",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ContainerNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ContainerNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ContainerNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-container-missing",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report a HEAD of a blob in a missing container as container_not_found. Azure answers 404 without a body, but names ContainerNotFound in x-ms-error-code",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ContainerNotFound"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ContainerNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-current-version-of-deleted-object",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get current version of deleted object",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/versions-mtydohr2/deleted.txt",
+ "op": "get",
+ "version": "2024-01-01T00:00:00.3127057Z"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/versions-mtydohr2/deleted.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/versionid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.3127057Z"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "4cgEiIU9hqudbez+MNiTDw==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-2fd2c5abfb9e\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.3127057Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "ZzI="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-2fd2c5abfb9e\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "4cgEiIU9hqudbez+MNiTDw=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.3127057Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ZzI="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-current-version",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get current version",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/versions-mtydohr2/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-4768de772705\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.3326281Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "djI="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-4768de772705\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GyZ2GcSBLMRu4oF0eITKUA=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.3326281Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "djI="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-deleted-snapshot",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get deleted snapshot",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/snapshots/object.txt",
+ "op": "get",
+ "snapshot": "2024-01-01T00:00:00.8085866Z"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/snapshots/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/snapshot",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.8085866Z"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "BlobNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-deleted-versioned-object",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get deleted versioned object",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/versions-mtydohr2/deleted.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/versions-mtydohr2/deleted.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "BlobNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-duplicate-id",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get duplicate id",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/multipart/duplicate.bin",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/duplicate.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-3792ba4cfc79\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.6153683Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "c2FtZXNhbWU="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-3792ba4cfc79\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.6153683Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2FtZXNhbWU="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-empty",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get empty",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/write/empty.bin",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/empty.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "1B2M2Y8AsgTpgAmY7PhCfg==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-ee13937a1c94\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7573734Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ee13937a1c94\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1B2M2Y8AsgTpgAmY7PhCfg=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7573734Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-range-of-empty-object",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report a range read of an empty object as 416 InvalidRange: no range of it can be satisfied, not even its first byte",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/write/empty.bin",
+ "op": "get",
+ "range": {
+ "end": 1,
+ "start": 0
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/empty.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=0-0"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 416,
+ "headers": {
+ "content-range": "bytes */0",
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidRange"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidRangeFixture error"
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/empty.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=0-0"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 416,
+ "headers": {
+ "content-range": "bytes */0",
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidRange"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidRangeFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 416
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidRange"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-if-match-current",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get if match current",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "if_match": "\"fixture-16c44f0af72d\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-if-none-match-other",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get if none match other",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "if_none_match": "\"fixture-088e5dc109cf\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-088e5dc109cf\""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-key-with-hash",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get key with hash",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/names/hash#tag.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/names/hash#tag.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-25c967601e53\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.9185620Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MQ=="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-25c967601e53\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.9185620Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-key-with-percent",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get key with percent",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/names/percent%20.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/names/percent%20.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-a88830604904\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.5807236Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MQ=="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-a88830604904\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.5807236Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-key-with-plus",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get key with plus",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/names/plus+plus.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/names/plus+plus.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-3d8677cc8a95\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.8000075Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MQ=="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-3d8677cc8a95\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.8000075Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-key-with-space",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get key space",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ ],
+ "call": {
+ "key": "a b",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/a b"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "aGVsbG8="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aGVsbG8="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-key-with-question",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get key question",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ ],
+ "call": {
+ "key": "a?b",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/a?b"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "aGVsbG8="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aGVsbG8="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-key-with-non-ascii",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get key unicode",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ ],
+ "call": {
+ "key": "café/雪",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/café/雪"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "aGVsbG8="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aGVsbG8="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-key-with-separators",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get key separators",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ ],
+ "call": {
+ "key": "a//b/",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/a//b/"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "aGVsbG8="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aGVsbG8="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-metadata-empty-value",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get metadata empty value",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/metadata/empty-value.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/empty-value.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-333d95b64818\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-meta-empty": "",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.9480929Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MQ=="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-333d95b64818\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.9480929Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "empty": ""
+ }
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-metadata-of-snapshot",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get metadata of snapshot",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/metadata/snapshotted.txt",
+ "op": "get",
+ "snapshot": "2024-01-01T00:00:00.1300046Z"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/snapshotted.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/snapshot",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.1300046Z"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-b4e7f3b8fb36\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-meta-name": "value",
+ "x-ms-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MQ=="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-b4e7f3b8fb36\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "name": "value"
+ }
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-metadata-replaced",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get metadata replaced",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/metadata/replaced.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/replaced.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-37b036d8c13f\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7487600Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "Mg=="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-37b036d8c13f\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "yB5yjZ1ML2NvBn+JzBSGLA=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7487600Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Mg=="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-metadata",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get metadata",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/metadata/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-9abbc5e374ca\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-meta-name": "value",
+ "x-ms-meta-second": "2",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7035036Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MQ=="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-9abbc5e374ca\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7035036Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "name": "value",
+ "second": "2"
+ }
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-metadata-ignores-unknown-headers",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Surface user metadata; unknown headers must not become metadata.",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ ],
+ "call": {
+ "key": "object",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-meta-author": "Ada",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03",
+ "x-unrelated": "not metadata"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "aGVsbG8="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aGVsbG8="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "author": "Ada"
+ }
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-missing",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get missing. A client reports it as not_found: the object is absent",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/absent.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/absent.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "BlobNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "not_found"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-missing-code-in-body",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get missing, with the error code only in the XML body. A client reports it as not_found: the object is absent",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ ],
+ "origin": "constructed",
+ "call": {
+ "key": "object-tests/read/absent.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/absent.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "not_found"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-not-modified",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get not modified",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "if_none_match": "\"fixture-16c44f0af72d\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 304,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ConditionNotMet"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 304
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ConditionNotMet"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-precondition-failed",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get precondition failed",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "if_match": "\"fixture-088e5dc109cf\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-088e5dc109cf\""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ConditionNotMet"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ConditionNotMetFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ConditionNotMet"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-previous-version-of-deleted-object",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get previous version of deleted object",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/versions-mtydohr2/deleted.txt",
+ "op": "get",
+ "version": "2024-01-01T00:00:00.0160641Z"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/versions-mtydohr2/deleted.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/versionid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.0160641Z"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "ASCk+RlqX5659SPzH5FNpw==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-3f26f9cf7bbe\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.0160641Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "ZzE="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-3f26f9cf7bbe\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ASCk+RlqX5659SPzH5FNpw=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.0160641Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ZzE="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-previous-version",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get previous version",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/versions-mtydohr2/object.txt",
+ "op": "get",
+ "version": "2024-01-01T00:00:00.2318906Z"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/versionid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2318906Z"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-5769a0807b46\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2318906Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "djE="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-5769a0807b46\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ZlTHNMyrj0QP8IJetEPcfw=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2318906Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "djE="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-range-inverted",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get range inverted",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 2,
+ "start": 6
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=6-1"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=6-1"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "range"
+ }
+ }
+ ],
+ "decline_permitted": true
+ },
+ {
+ "id": "operations/azure/get-range-empty",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Read a range of no bytes, whose start equals its end. HTTP has no form for it: bytes=5-4 is inverted, and the service ignores it and sends the whole object. A client may refuse it instead",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 5,
+ "start": 5
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=5-4"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=5-4"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "range"
+ }
+ }
+ ],
+ "decline_permitted": true
+ },
+ {
+ "id": "operations/azure/get-range-not-satisfiable",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get range not satisfiable",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "start": 40
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=40-"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 416,
+ "headers": {
+ "content-range": "bytes */30",
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidRange"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidRangeFixture error"
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=40-"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 416,
+ "headers": {
+ "content-range": "bytes */30",
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidRange"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidRangeFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 416
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidRange"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-range-past-the-end",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Read a range that ends past the object, which the service clips to the object's end. Report the window it served from Content-Range, bytes 28-29/30, so that the caller sees the range was clipped",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 64,
+ "start": 28
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=28-63"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 28-29/30",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "Y3Q="
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=28-63"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 28-29/30",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "Y3Q="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Y3Q="
+ }
+ },
+ {
+ "at": "/value/content_range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes 28-29/30"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-range-single-byte",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get range single byte",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 1,
+ "start": 0
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=0-0"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 0-0/30",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MA=="
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=0-0"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 0-0/30",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MA=="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MA=="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-range",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get range",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 6,
+ "start": 2
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=2-5"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 2-5/30",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MjM0NQ=="
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=2-5"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 2-5/30",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MjM0NQ=="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 4
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MjM0NQ=="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-range-open",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get range open",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ ],
+ "call": {
+ "key": "object",
+ "op": "get",
+ "range": {
+ "start": 3
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=3-"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 3-4/5",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "bG8="
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=3-"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 3-4/5",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "bG8="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bG8="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-reordered",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get reordered",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/multipart/reordered.bin",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/reordered.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-8d8ae06ceb7d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2664276Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "c2Vjb25kZmlyc3Q="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-8d8ae06ceb7d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 11
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2664276Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25kZmlyc3Q="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-replacement",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get replacement",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/multipart/replaced.bin",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/replaced.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-2184b3e6c2c3\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.5387802Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "RklSU1Q="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-2184b3e6c2c3\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 5
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.5387802Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "RklSU1Q="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-snapshot",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get snapshot",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/snapshots/object.txt",
+ "op": "get",
+ "snapshot": "2024-01-01T00:00:00.7351568Z"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/snapshots/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/snapshot",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7351568Z"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "+XxdKZQb+xsv2rCHSQargg==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-e3698635ab53\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "b25l"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-e3698635ab53\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "+XxdKZQb+xsv2rCHSQargg=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "b25l"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-staged-only",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get staged only",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/multipart/staged.bin",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/staged.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "BlobNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-suffix-longer-than-object",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get suffix longer than object",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "suffix": 100
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=-100"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=-100"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "range"
+ }
+ }
+ ],
+ "decline_permitted": true
+ },
+ {
+ "id": "operations/azure/get-suffix",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get suffix",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "suffix": 6
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=-6"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=-6"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "range"
+ }
+ }
+ ],
+ "decline_permitted": true
+ },
+ {
+ "id": "operations/azure/get-unauthenticated",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 401,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidAuthenticationInfo"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidAuthenticationInfoFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 401
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidAuthenticationInfo"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-unknown-snapshot",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get unknown snapshot",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/snapshots/object.txt",
+ "op": "get",
+ "snapshot": "2024-01-01T00:00:00.4364169Z"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/snapshots/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/snapshot",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.4364169Z"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "BlobNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-unknown-version",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get unknown version",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/versions-mtydohr2/object.txt",
+ "op": "get",
+ "version": "2024-01-01T00:00:00.4364169Z"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/versionid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.4364169Z"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "BlobNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-whole",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get whole",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-xml-looking",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get xml looking",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ ],
+ "call": {
+ "key": "object",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-noise-tolerance",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get noise tolerance",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ ],
+ "origin": "constructed",
+ "call": {
+ "key": "object",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"a-different-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-fixture-unknown": "ignored",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "another-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "aGVsbG8="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aGVsbG8="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-body-cut-short",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report a body that ends before its Content-Length as an error, or resume it, but never return the short body",
+ "sources": [
+ "https://www.rfc-editor.org/rfc/rfc9112#section-8",
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_client.cpp"
+ ],
+ "origin": "transient",
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ },
+ "truncate_body_after": 15
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=15-"
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 15-29/30",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "Y3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=15-"
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 15-29/30",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "Y3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ }
+ ],
+ "optional": true
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "error",
+ "ok"
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-server-busy",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report a 503 ServerBusy answer as an error, after at most 5 retries",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ ],
+ "origin": "transient",
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ],
+ "optional": true
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 503
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ServerBusy"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-if-unmodified-since-past",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/if-unmodified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ConditionNotMet"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ConditionNotMetFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ConditionNotMet"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-if-modified-since-future",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report 304 when If-Modified-Since names a future date, which Azure does not ignore",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "if_modified_since": "Fri, 01 Jan 2100 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/if-modified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Fri, 01 Jan 2100 00:00:00 GMT"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 304,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ConditionNotMet"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 304
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ConditionNotMet"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-if-modified-since-past",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Read an object modified since a past date",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "if_modified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/if-modified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-content-encoding-gzip",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Return the stored gzip bytes and Content-Encoding: gzip without decoding them",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-encoding": "gzip",
+ "content-md5": "CVsDGvNMZH4SPA4MSLswrA==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 42
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "CVsDGvNMZH4SPA4MSLswrA=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ }
+ },
+ {
+ "at": "/value/content_encoding",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "gzip"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-content-properties",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Return the stored content properties from a GET",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "cache-control": "max-age=3600",
+ "content-disposition": "attachment; filename=\"report.txt\"",
+ "content-language": "nl-NL",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "text/plain; charset=utf-8",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain; charset=utf-8"
+ }
+ },
+ {
+ "at": "/value/content_language",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "nl-NL"
+ }
+ },
+ {
+ "at": "/value/content_disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename=\"report.txt\""
+ }
+ },
+ {
+ "at": "/value/cache_control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/get-with-staged-blocks",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "get with staged blocks",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/multipart/pending.bin",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/pending.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-9c5ca12bcfc9\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.6314295Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "Zmlyc3RzZWNvbmQ="
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-9c5ca12bcfc9\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 11
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.6314295Z"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Zmlyc3RzZWNvbmQ="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-committed-declaring-md5",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head committed declaring md5",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/hashes/committed.bin",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/hashes/committed.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "13",
+ "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-39ee25525bc6\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2802899Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-39ee25525bc6\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 13
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2802899Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-committed",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head committed",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/multipart/committed.bin",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/committed.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "11",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-be8efdb79010\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7848460Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-be8efdb79010\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 11
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7848460Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-metadata",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head metadata",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/metadata/object.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "1",
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-9abbc5e374ca\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-meta-name": "value",
+ "x-ms-meta-second": "2",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7035036Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-9abbc5e374ca\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7035036Z"
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "name": "value",
+ "second": "2"
+ }
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-missing",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head missing. A client reports it as not_found: the object is absent",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/absent.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/absent.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "BlobNotFound"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "not_found"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-previous-version",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head previous version",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/versions-mtydohr2/object.txt",
+ "op": "head",
+ "version": "2024-01-01T00:00:00.2318906Z"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/versionid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2318906Z"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "2",
+ "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-5769a0807b46\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2318906Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-5769a0807b46\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ZlTHNMyrj0QP8IJetEPcfw=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2318906Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-snapshot",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head snapshot",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/snapshots/object.txt",
+ "op": "head",
+ "snapshot": "2024-01-01T00:00:00.7351568Z"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/snapshots/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/snapshot",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7351568Z"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "3",
+ "content-md5": "+XxdKZQb+xsv2rCHSQargg==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-e3698635ab53\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-e3698635ab53\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "+XxdKZQb+xsv2rCHSQargg=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-written-with-crc64",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head written with crc64",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/hashes/crc64.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/hashes/crc64.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "13",
+ "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-90cfcb93036b\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.1153123Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-90cfcb93036b\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 13
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.1153123Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-written-with-md5",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head written with md5",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/hashes/md5.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/hashes/md5.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "13",
+ "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-494ad7275bf7\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7803759Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-494ad7275bf7\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 13
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7803759Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-key-question",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head, with the key \"question?mark.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/question?mark.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-key-hash",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head, with the key \"hash#tag.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/hash#tag.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-key-percent",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head, with the key \"percent%20.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/percent%20.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-key-plus",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head, with the key \"plus+plus.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/plus+plus.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-key-space",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head, with the key \"space name.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/keys/space name.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/space name.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-key-non-ascii",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head, with the key \"café/雪.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/café/雪.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-key-double-slash",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head, with the key \"double//slash.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/double//slash.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-key-trailing-slash",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "head, with the key \"trailing-slash/\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/trailing-slash/"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-content-properties",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Return the stored content properties from a HEAD",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "cache-control": "max-age=3600",
+ "content-disposition": "attachment; filename=\"report.txt\"",
+ "content-language": "nl-NL",
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "text/plain; charset=utf-8",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-16c44f0af72d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7556278Z"
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain; charset=utf-8"
+ }
+ },
+ {
+ "at": "/value/content_language",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "nl-NL"
+ }
+ },
+ {
+ "at": "/value/content_disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename=\"report.txt\""
+ }
+ },
+ {
+ "at": "/value/cache_control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-if-unmodified-since-past",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/if-unmodified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ConditionNotMet"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ConditionNotMet"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-copy-status",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report the copy that wrote a blob, its x-ms-copy-status and x-ms-copy-id, from a HEAD of the blob",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-properties"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "5",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-copy-completion-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-progress": "5/5",
+ "x-ms-copy-source": "https://fixture.blob.core.windows.net/fixture/object-tests/copy/source.txt",
+ "x-ms-copy-status": "success",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/copy_status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "success"
+ }
+ },
+ {
+ "at": "/value/copy_id",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-copy-id"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/head-access-tier",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report a blob's access tier, which Azure sends in x-ms-access-tier",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16c44f0af72d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-access-tier": "Cool",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/access_tier",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Cool"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-after-delete-with-versions",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list after delete with versions",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": "object-tests/versions-mtydohr2/deleted.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/versions-mtydohr2/deleted.txt"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/versions-mtydohr2/deleted.txt"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-bad-marker",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list bad marker",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "continuation_token": "fixture-marker+/1d52c72a655f=",
+ "op": "list_page",
+ "prefix": "object-tests/board/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/marker",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/1d52c72a655f="
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidQueryParameterValue"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidQueryParameterValueFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidQueryParameterValue"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-bad-marker-code-in-body",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list bad marker, with the error code only in the XML body",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ ],
+ "origin": "constructed",
+ "call": {
+ "continuation_token": "fixture-marker+/1d52c72a655f=",
+ "op": "list_page",
+ "prefix": "object-tests/board/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/marker",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/1d52c72a655f="
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidQueryParameterValueFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidQueryParameterValue"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-container-missing",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": ""
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ContainerNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ContainerNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ContainerNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-delimited",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list delimited",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/board/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/board//object-tests/board/a.txt2024-01-01T00:00:00.9908400ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-704c5ddfc8cb8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nested/object-tests/board/z.txt2024-01-01T00:00:00.3834597ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b905747bf74f2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-704c5ddfc8cb"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.9908400Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/z.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-b905747bf74f"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.3834597Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Je0by0I7C3IA9IX8X/ccjg=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes/0",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/nested/"
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-other-delimiter",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Send the delimiter the caller names. A flat account groups blob names at any delimiter, not only /; here a- groups a-1.txt and a-2.txt",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "delimiter": "-",
+ "op": "list_page",
+ "prefix": "object-tests/dashes/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/dashes/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "-"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/dashes/-object-tests/dashes/a-object-tests/dashes/b.txt2024-01-01T00:00:00.9908400ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-704c5ddfc8cb1application/octet-streamkutf/uauL+w61xx3dTFXjw==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/dashes/b.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-704c5ddfc8cb"
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.9908400Z"
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes/0",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/dashes/a-"
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-empty",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list empty",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": "object-tests/nothing/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/nothing/"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/nothing/"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-all-empty",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list empty",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
+ ],
+ "call": {
+ "op": "list",
+ "prefix": ""
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PC9CbG9icz48TmV4dE1hcmtlcj48L05leHRNYXJrZXI+PC9FbnVtZXJhdGlvblJlc3VsdHM+"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": []
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-encoded-names",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list encoded names",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": "object-tests/names/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/names/object-tests%2Fnames%2F100%25-%EF%BF%BE-name.txt2024-01-01T00:00:00.6773769ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b0016e7eea411application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/a&b.txt2024-01-01T00:00:00.9293679ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e0cf2e36cfe61application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/back/slash.txt2024-01-01T00:00:00.8649025ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-fb1ea388bc8f1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/café.txt2024-01-01T00:00:00.0714249ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4dfcbd136b001application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/hash#tag.txt2024-01-01T00:00:00.9185620ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-a7996d03132f1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/percent%20.txt2024-01-01T00:00:00.5807236ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-5e82da751e9c1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/plus+plus.txt2024-01-01T00:00:00.8000075ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7dc03e94613e1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/q?mark.txt2024-01-01T00:00:00.3314072ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-91f727e794361application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/100%--name.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-b0016e7eea41"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.6773769Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/a&b.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-e0cf2e36cfe6"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.9293679Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/back/slash.txt"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-fb1ea388bc8f"
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.8649025Z"
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/2/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/café.txt"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-4dfcbd136b00"
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.0714249Z"
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/3/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/hash#tag.txt"
+ }
+ },
+ {
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/4/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-a7996d03132f"
+ }
+ },
+ {
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.9185620Z"
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/4/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/percent%20.txt"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/5/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-5e82da751e9c"
+ }
+ },
+ {
+ "at": "/value/entries/5/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.5807236Z"
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/5/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/6/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/plus+plus.txt"
+ }
+ },
+ {
+ "at": "/value/entries/6/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/6/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-7dc03e94613e"
+ }
+ },
+ {
+ "at": "/value/entries/6/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.8000075Z"
+ }
+ },
+ {
+ "at": "/value/entries/6/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/6/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/7/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/q?mark.txt"
+ }
+ },
+ {
+ "at": "/value/entries/7/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/7/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-91f727e79436"
+ }
+ },
+ {
+ "at": "/value/entries/7/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.3314072Z"
+ }
+ },
+ {
+ "at": "/value/entries/7/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/7/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-xml-escaped",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list xml escaped",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
+ ],
+ "call": {
+ "op": "list",
+ "prefix": ""
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+YSZhbXA7YjwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PEJsb2I+PE5hbWU+YyZsdDtkPC9OYW1lPjxQcm9wZXJ0aWVzPjxMYXN0LU1vZGlmaWVkPk1vbiwgMDEgSmFuIDIwMjQgMDA6MDA6MDAgR01UPC9MYXN0LU1vZGlmaWVkPjxFdGFnPiJmaXh0dXJlIjwvRXRhZz48Q29udGVudC1MZW5ndGg+NTwvQ29udGVudC1MZW5ndGg+PEJsb2JUeXBlPkJsb2NrQmxvYjwvQmxvYlR5cGU+PC9Qcm9wZXJ0aWVzPjwvQmxvYj48L0Jsb2JzPjxOZXh0TWFya2VyPjwvTmV4dE1hcmtlcj48L0VudW1lcmF0aW9uUmVzdWx0cz4="
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ "a&b",
+ "cobject-tests/board/2object-tests/board/a.txt2024-01-01T00:00:00.9908400ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-704c5ddfc8cb8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nested/c.txt2024-01-01T00:00:00.7881326ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-48ff0e151ab71application/octet-streamSooI8J03tzeVZJA4QItfMw==BlockBlobHottrueunlockedavailabletruefixture-marker+/c42f89fa82e8="
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-704c5ddfc8cb"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.9908400Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/nested/c.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-48ff0e151ab7"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7881326Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "SooI8J03tzeVZJA4QItfMw=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/c42f89fa82e8="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-page-size-one",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "A page of zero entries is out of range, but a page of one is not. Send a page size of 1 and report the one entry and the continuation token.",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "page_size": 1,
+ "prefix": "object-tests/board/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/board/1object-tests/board/a.txt2024-01-01T00:00:00.9908400ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-704c5ddfc8cb8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletruefixture-marker+/c42f89fa82e8="
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-704c5ddfc8cb"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.9908400Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/c42f89fa82e8="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-operation-timed-out",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report a 500 OperationTimedOut answer as an error, after at most 5 retries",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ ],
+ "origin": "transient",
+ "call": {
+ "op": "list_page",
+ "page_size": 2,
+ "prefix": "object-tests/board/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 500,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "OperationTimedOut"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 500,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "OperationTimedOut"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 500,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "OperationTimedOut"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 500,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "OperationTimedOut"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 500,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "OperationTimedOut"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 500,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "OperationTimedOut"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ }
+ }
+ }
+ ],
+ "optional": true
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 500
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "OperationTimedOut"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-key-equal-to-prefix-delimited",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list key equal to prefix delimited",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/exact"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/exact"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/exact/object-tests/exact2024-01-01T00:00:00.9097158ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-aad9350ee3141application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/exact/"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/exact"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-aad9350ee314"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.9097158Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes/0",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/exact/"
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-key-equal-to-prefix",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list key equal to prefix",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": "object-tests/exact"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/exact"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/exactobject-tests/exact2024-01-01T00:00:00.9097158ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-aad9350ee3141application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/exact/child2024-01-01T00:00:00.1462797ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-bc7e3365fd2c1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/exact"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-aad9350ee314"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.9097158Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/exact/child"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-bc7e3365fd2c"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.1462797Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-many-segments",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list many segments",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": "object-tests/s/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/s/object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s2024-01-01T00:00:00.1683367ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-bdb8a3090de61application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-bdb8a3090de6"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.1683367Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-max-keys-zero",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list max keys zero",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "page_size": 0,
+ "prefix": "object-tests/board/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "0"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "OutOfRangeQueryParameterValue"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "OutOfRangeQueryParameterValueFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "OutOfRangeQueryParameterValue"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "page_size"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "OutOfRangeQueryParameterValue"
+ }
+ }
+ ]
+ },
+ {
+ "id": "operations/azure/list-metadata",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list metadata",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "include": [
+ "metadata"
+ ],
+ "op": "list_page",
+ "prefix": "object-tests/metadata-listed/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/metadata-listed/"
+ }
+ },
+ {
+ "at": "/query/include",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "metadata"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/metadata-listed/object-tests/metadata-listed/plain.txt2024-01-01T00:00:00.4469276ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-9a0b44f4b9e91application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/metadata-listed/shadowed.txt2024-01-01T00:00:00.9968398ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-cd8bb50852bd1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletruex"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/metadata-listed/plain.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-9a0b44f4b9e9"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.4469276Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/metadata-listed/shadowed.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-cd8bb50852bd"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.9968398Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/value/entries/0/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "label": "c"
+ }
+ }
+ },
+ {
+ "at": "/value/entries/1/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "Metadata": "x",
+ "label": "b"
+ }
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-next-page",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list next page",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "continuation_token": "fixture-marker+/c42f89fa82e8=",
+ "op": "list_page",
+ "page_size": 2,
+ "prefix": "object-tests/board/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/marker",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/c42f89fa82e8="
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/board/fixture-marker+/c42f89fa82e8=2object-tests/board/z.txt2024-01-01T00:00:00.3834597ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b905747bf74f2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/z.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-b905747bf74f"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.3834597Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Je0by0I7C3IA9IX8X/ccjg=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-pagination",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list pagination",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
+ ],
+ "call": {
+ "op": "list",
+ "page_size": 1,
+ "prefix": ""
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+Zmlyc3Q8L05hbWU+PFByb3BlcnRpZXM+PExhc3QtTW9kaWZpZWQ+TW9uLCAwMSBKYW4gMjAyNCAwMDowMDowMCBHTVQ8L0xhc3QtTW9kaWZpZWQ+PEV0YWc+ImZpeHR1cmUiPC9FdGFnPjxDb250ZW50LUxlbmd0aD41PC9Db250ZW50LUxlbmd0aD48QmxvYlR5cGU+QmxvY2tCbG9iPC9CbG9iVHlwZT48L1Byb3BlcnRpZXM+PC9CbG9iPjwvQmxvYnM+PE5leHRNYXJrZXI+b3BhcXVlKy89PC9OZXh0TWFya2VyPjwvRW51bWVyYXRpb25SZXN1bHRzPg=="
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/marker",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "opaque+/="
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+c2Vjb25kPC9OYW1lPjxQcm9wZXJ0aWVzPjxMYXN0LU1vZGlmaWVkPk1vbiwgMDEgSmFuIDIwMjQgMDA6MDA6MDAgR01UPC9MYXN0LU1vZGlmaWVkPjxFdGFnPiJmaXh0dXJlIjwvRXRhZz48Q29udGVudC1MZW5ndGg+NTwvQ29udGVudC1MZW5ndGg+PEJsb2JUeXBlPkJsb2NrQmxvYjwvQmxvYlR5cGU+PC9Qcm9wZXJ0aWVzPjwvQmxvYj48L0Jsb2JzPjxOZXh0TWFya2VyPjwvTmV4dE1hcmtlcj48L0VudW1lcmF0aW9uUmVzdWx0cz4="
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ "first",
+ "second"
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-order-delimited",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list order delimited",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/order/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/order//object-tests/order/A2024-01-01T00:00:00.6802950ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b1567b296bf41application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a2024-01-01T00:00:00.6196984ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-522bf336fec01application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a-b2024-01-01T00:00:00.7288701ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-ffd1d6ff8b0f1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a.txt2024-01-01T00:00:00.2739144ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1b029c6aa2e91application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a/object-tests/order/a02024-01-01T00:00:00.7594151ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-238f35f044af1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/b2024-01-01T00:00:00.4152572ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-91f7dfa02cf51application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/é2024-01-01T00:00:00.1938992ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e8b6d1d5f3fb1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/A"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-b1567b296bf4"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.6802950Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-522bf336fec0"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.6196984Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a-b"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-ffd1d6ff8b0f"
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7288701Z"
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/2/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-1b029c6aa2e9"
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2739144Z"
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/3/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a0"
+ }
+ },
+ {
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/4/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-238f35f044af"
+ }
+ },
+ {
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7594151Z"
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/4/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/b"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/5/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-91f7dfa02cf5"
+ }
+ },
+ {
+ "at": "/value/entries/5/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.4152572Z"
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/5/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/6/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/é"
+ }
+ },
+ {
+ "at": "/value/entries/6/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/6/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-e8b6d1d5f3fb"
+ }
+ },
+ {
+ "at": "/value/entries/6/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.1938992Z"
+ }
+ },
+ {
+ "at": "/value/entries/6/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/6/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 7
+ }
+ },
+ {
+ "at": "/value/prefixes/0",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a/"
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-order",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list order",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": "object-tests/order/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/order/object-tests/order/A2024-01-01T00:00:00.6802950ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b1567b296bf41application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a2024-01-01T00:00:00.6196984ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-522bf336fec01application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a-b2024-01-01T00:00:00.7288701ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-ffd1d6ff8b0f1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a.txt2024-01-01T00:00:00.2739144ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1b029c6aa2e91application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a/b2024-01-01T00:00:00.2584945ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8a57ec6c44921application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a02024-01-01T00:00:00.7594151ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-238f35f044af1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/b2024-01-01T00:00:00.4152572ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-91f7dfa02cf51application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/é2024-01-01T00:00:00.1938992ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e8b6d1d5f3fb1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/A"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-b1567b296bf4"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.6802950Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-522bf336fec0"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.6196984Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a-b"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-ffd1d6ff8b0f"
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7288701Z"
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/2/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-1b029c6aa2e9"
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2739144Z"
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/3/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a/b"
+ }
+ },
+ {
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/4/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-8a57ec6c4492"
+ }
+ },
+ {
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2584945Z"
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/4/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a0"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/5/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-238f35f044af"
+ }
+ },
+ {
+ "at": "/value/entries/5/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7594151Z"
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/5/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/6/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/b"
+ }
+ },
+ {
+ "at": "/value/entries/6/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/6/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-91f7dfa02cf5"
+ }
+ },
+ {
+ "at": "/value/entries/6/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.4152572Z"
+ }
+ },
+ {
+ "at": "/value/entries/6/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/6/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/7/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/é"
+ }
+ },
+ {
+ "at": "/value/entries/7/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/7/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-e8b6d1d5f3fb"
+ }
+ },
+ {
+ "at": "/value/entries/7/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.1938992Z"
+ }
+ },
+ {
+ "at": "/value/entries/7/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/7/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-all-order",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list order",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
+ ],
+ "call": {
+ "op": "list",
+ "prefix": ""
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+YTwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PEJsb2I+PE5hbWU+ejwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PC9CbG9icz48TmV4dE1hcmtlcj48L05leHRNYXJrZXI+PC9FbnVtZXJhdGlvblJlc3VsdHM+"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ "a",
+ "z"
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-page",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list page",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": "object-tests/board/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/board/object-tests/board/a.txt2024-01-01T00:00:00.9908400ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-704c5ddfc8cb8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nested/c.txt2024-01-01T00:00:00.7881326ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-48ff0e151ab71application/octet-streamSooI8J03tzeVZJA4QItfMw==BlockBlobHottrueunlockedavailabletrueobject-tests/board/z.txt2024-01-01T00:00:00.3834597ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b905747bf74f2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-704c5ddfc8cb"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.9908400Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/nested/c.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-48ff0e151ab7"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7881326Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "SooI8J03tzeVZJA4QItfMw=="
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/z.txt"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-b905747bf74f"
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.3834597Z"
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/2/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Je0by0I7C3IA9IX8X/ccjg=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-prefix-without-slash",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list prefix without slash",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": "object-tests/boa"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/boa"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/boaobject-tests/board/a.txt2024-01-01T00:00:00.9908400ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-704c5ddfc8cb8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nested/c.txt2024-01-01T00:00:00.7881326ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-48ff0e151ab71application/octet-streamSooI8J03tzeVZJA4QItfMw==BlockBlobHottrueunlockedavailabletrueobject-tests/board/z.txt2024-01-01T00:00:00.3834597ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b905747bf74f2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-704c5ddfc8cb"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.9908400Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/nested/c.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-48ff0e151ab7"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7881326Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "SooI8J03tzeVZJA4QItfMw=="
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/z.txt"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-b905747bf74f"
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.3834597Z"
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/2/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Je0by0I7C3IA9IX8X/ccjg=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-separator-keys-delimited",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list separator keys delimited",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/separators/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/separators//object-tests/separators/..leading2024-01-01T00:00:00.1857029ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-99f23038e5ea1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/a.b/object-tests/separators/dot2024-01-01T00:00:00.2106231ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-ccbcb2d755851application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/double/object-tests/separators/space /object-tests/separators/trailing/"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/..leading"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-99f23038e5ea"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.1857029Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/dot"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-ccbcb2d75585"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2106231Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes/0",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/a.b/"
+ }
+ },
+ {
+ "at": "/value/prefixes/1",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/double/"
+ }
+ },
+ {
+ "at": "/value/prefixes/2",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/space /"
+ }
+ },
+ {
+ "at": "/value/prefixes/3",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/trailing/"
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 4
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-separator-keys",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list separator keys",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": "object-tests/separators/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/separators/object-tests/separators/..leading2024-01-01T00:00:00.1857029ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-99f23038e5ea1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/a.b/c2024-01-01T00:00:00.4918444ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4a4f8766cc8e1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/dot2024-01-01T00:00:00.2106231ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-ccbcb2d755851application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/double//slash2024-01-01T00:00:00.9957719ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-32b8d82fce871application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/space /x2024-01-01T00:00:00.8166959ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0b64e32539cd1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/trailing/2024-01-01T00:00:00.6886650ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-3be5b05a5c3b1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/..leading"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-99f23038e5ea"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.1857029Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/a.b/c"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-4a4f8766cc8e"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.4918444Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/dot"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-ccbcb2d75585"
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2106231Z"
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/2/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/double//slash"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-32b8d82fce87"
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.9957719Z"
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/3/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/space /x"
+ }
+ },
+ {
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/4/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-0b64e32539cd"
+ }
+ },
+ {
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.8166959Z"
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/4/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/trailing/"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/5/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-3be5b05a5c3b"
+ }
+ },
+ {
+ "at": "/value/entries/5/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.6886650Z"
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/5/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 6
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-snapshots-after-delete",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list snapshots after delete",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "include": [
+ "snapshots"
+ ],
+ "op": "list_page",
+ "prefix": "object-tests/snapshots-all/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/snapshots-all/"
+ }
+ },
+ {
+ "at": "/query/include",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "snapshots"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/snapshots-all/"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-snapshots-after-snapshots-deleted",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list snapshots after snapshots deleted",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "include": [
+ "snapshots"
+ ],
+ "op": "list_page",
+ "prefix": "object-tests/snapshots-only/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/snapshots-only/"
+ }
+ },
+ {
+ "at": "/query/include",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "snapshots"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/snapshots-only/object-tests/snapshots-only/object.txt2024-01-01T00:00:00.6170785ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-493478beeeaf4application/octet-streamTYtghPPRZ7dsrGaiKpG+Ag==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/snapshots-only/object.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 4
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-493478beeeaf"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.6170785Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "TYtghPPRZ7dsrGaiKpG+Ag=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-snapshots-and-versions",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list snapshots and versions",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "include": [
+ "snapshots",
+ "versions"
+ ],
+ "op": "list_page",
+ "prefix": "object-tests/snapshots/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/snapshots/"
+ }
+ },
+ {
+ "at": "/query/include",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "snapshots,versions"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/snapshots/object-tests/snapshots/object.txt2024-01-01T00:00:00.4877091ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7adbbe4768f33application/octet-stream+XxdKZQb+xsv2rCHSQargg==BlockBlobHottruetrueobject-tests/snapshots/object.txt2024-01-01T00:00:00.7351568ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7adbbe4768f33application/octet-stream+XxdKZQb+xsv2rCHSQargg==BlockBlobHottruetrueobject-tests/snapshots/object.txt2024-01-01T00:00:00.8746441ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7adbbe4768f33application/octet-stream+XxdKZQb+xsv2rCHSQargg==BlockBlobHottruetrueobject-tests/snapshots/object.txt2024-01-01T00:00:00.6268993ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-222f410e528f3application/octet-streamuKn3Fdu2T9XFbneDxoIKYQ==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/snapshots/object.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-7adbbe4768f3"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.4877091Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "+XxdKZQb+xsv2rCHSQargg=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/snapshots/object.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-7adbbe4768f3"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7351568Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "+XxdKZQb+xsv2rCHSQargg=="
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/snapshots/object.txt"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-7adbbe4768f3"
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.8746441Z"
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "+XxdKZQb+xsv2rCHSQargg=="
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/snapshots/object.txt"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-222f410e528f"
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.6268993Z"
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/3/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "uKn3Fdu2T9XFbneDxoIKYQ=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 4
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-snapshots",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list snapshots",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "include": [
+ "snapshots"
+ ],
+ "op": "list_page",
+ "prefix": "object-tests/snapshots/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/snapshots/"
+ }
+ },
+ {
+ "at": "/query/include",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "snapshots"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/snapshots/object-tests/snapshots/object.txt2024-01-01T00:00:00.7351568ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7adbbe4768f33application/octet-stream+XxdKZQb+xsv2rCHSQargg==BlockBlobHottruetrueobject-tests/snapshots/object.txt2024-01-01T00:00:00.6268993ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-222f410e528f3application/octet-streamuKn3Fdu2T9XFbneDxoIKYQ==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/snapshots/object.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-7adbbe4768f3"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7351568Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "+XxdKZQb+xsv2rCHSQargg=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/snapshots/object.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-222f410e528f"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.6268993Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "uKn3Fdu2T9XFbneDxoIKYQ=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-staged-only",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list staged only",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": "object-tests/multipart/staged.bin"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/multipart/staged.bin"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/multipart/staged.bin"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-unauthenticated",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": "object-tests/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 401,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidAuthenticationInfo"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidAuthenticationInfoFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 401
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidAuthenticationInfo"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-versions-of-deleted-object",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list versions of deleted object",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "include": [
+ "versions"
+ ],
+ "op": "list_page",
+ "prefix": "object-tests/versions-mtydohr2/deleted.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/versions-mtydohr2/deleted.txt"
+ }
+ },
+ {
+ "at": "/query/include",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "versions"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/versions-mtydohr2/deleted.txtobject-tests/versions-mtydohr2/deleted.txt2024-01-01T00:00:00.0160641ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-3b1602b981e92application/octet-streamASCk+RlqX5659SPzH5FNpw==BlockBlobHottruetrueobject-tests/versions-mtydohr2/deleted.txt2024-01-01T00:00:00.3127057ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-629d3a1755352application/octet-stream4cgEiIU9hqudbez+MNiTDw==BlockBlobHottruetrueobject-tests/versions-mtydohr2/deleted.txt2024-01-01T00:00:00.0760252ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4de1996d2b4b2application/octet-streamip/X39qAKSH9xAefmlKM6A==BlockBlobHottruetrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/versions-mtydohr2/deleted.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-3b1602b981e9"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.0160641Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ASCk+RlqX5659SPzH5FNpw=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/versions-mtydohr2/deleted.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-629d3a175535"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.3127057Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "4cgEiIU9hqudbez+MNiTDw=="
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/versions-mtydohr2/deleted.txt"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-4de1996d2b4b"
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.0760252Z"
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ip/X39qAKSH9xAefmlKM6A=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-versions",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list versions",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "include": [
+ "versions"
+ ],
+ "op": "list_page",
+ "prefix": "object-tests/versions-mtydohr2/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/versions-mtydohr2/"
+ }
+ },
+ {
+ "at": "/query/include",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "versions"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/versions-mtydohr2/object-tests/versions-mtydohr2/object.txt2024-01-01T00:00:00.2318906ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-9dc9ff8bf5132application/octet-streamZlTHNMyrj0QP8IJetEPcfw==BlockBlobHottruetrueobject-tests/versions-mtydohr2/object.txt2024-01-01T00:00:00.3326281ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-9e3bb87be41c2application/octet-streamGyZ2GcSBLMRu4oF0eITKUA==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/versions-mtydohr2/object.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-9dc9ff8bf513"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2318906Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ZlTHNMyrj0QP8IJetEPcfw=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/versions-mtydohr2/object.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-9e3bb87be41c"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.3326281Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GyZ2GcSBLMRu4oF0eITKUA=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/list-written-with-hashes",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "list written with hashes",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": "object-tests/hashes/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/hashes/"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/hashes/object-tests/hashes/committed.bin2024-01-01T00:00:00.2802899ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-879f71a2d23b13application/octet-streamN6YZkbg+Lyfxtskwn8iRCg==BlockBlobHottrueunlockedavailabletrueobject-tests/hashes/crc64.txt2024-01-01T00:00:00.1153123ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-c55cf5f18aae13application/octet-stream9XBvAwWoR9o=N6YZkbg+Lyfxtskwn8iRCg==BlockBlobHottrueunlockedavailabletrueobject-tests/hashes/md5.txt2024-01-01T00:00:00.7803759ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1f199b777f0713application/octet-streamN6YZkbg+Lyfxtskwn8iRCg==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/hashes/committed.bin"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 13
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-879f71a2d23b"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2802899Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/hashes/crc64.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 13
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-c55cf5f18aae"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.1153123Z"
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ }
+ },
+ {
+ "at": "/value/entries/1/content_crc64_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "9XBvAwWoR9o="
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/hashes/md5.txt"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 13
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-1f199b777f07"
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7803759Z"
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/2/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-container-missing",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
+ "key": "object.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bm90aGluZyBpcyBzdG9yZWQ="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ContainerNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ContainerNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ContainerNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-crc64-mismatch",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put crc64 mismatch",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "ZGVjbGFyZWQtYm9keQ==",
+ "checksum": {
+ "algorithm": "azure_crc64",
+ "value_base64": "khqMBK+EUSA="
+ },
+ "key": "object-tests/hashes/crc64-mismatch.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/hashes/crc64-mismatch.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ZGVjbGFyZWQtYm9keQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-content-crc64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "khqMBK+EUSA="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "Crc64Mismatch"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "Crc64MismatchFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Crc64Mismatch"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-created-empty",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put created empty",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "",
+ "key": "object-tests/write/empty.bin",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/empty.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "1B2M2Y8AsgTpgAmY7PhCfg==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-ee13937a1c94\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7573734Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ee13937a1c94\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7573734Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-created",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put created",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-b9991ef94e3d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-b9991ef94e3d\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2084665Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-created-key-question",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put created, with the key \"question?mark.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/question?mark.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-b9991ef94e3d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-b9991ef94e3d\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2084665Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-created-key-hash",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put created, with the key \"hash#tag.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/hash#tag.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-b9991ef94e3d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-b9991ef94e3d\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2084665Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-created-key-percent",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put created, with the key \"percent%20.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/percent%20.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-b9991ef94e3d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-b9991ef94e3d\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2084665Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-created-key-plus",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put created, with the key \"plus+plus.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/plus+plus.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-b9991ef94e3d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-b9991ef94e3d\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2084665Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-created-key-space",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put created, with the key \"space name.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/space name.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/space name.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-b9991ef94e3d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-b9991ef94e3d\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2084665Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-created-key-non-ascii",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put created, with the key \"café/雪.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/café/雪.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-b9991ef94e3d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-b9991ef94e3d\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2084665Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-created-key-double-slash",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put created, with the key \"double//slash.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/double//slash.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-b9991ef94e3d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-b9991ef94e3d\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2084665Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-created-key-trailing-slash",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put created, with the key \"trailing-slash/\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/trailing-slash/"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-b9991ef94e3d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-b9991ef94e3d\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2084665Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/copy-missing-source",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Refuse a copy whose source does not exist",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/absent.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/absent\\.txt"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "BlobNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/copy",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Copy an object to another key in the same container",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "success"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/copy_status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "success"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/copy-replace-metadata",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Copy a blob with new metadata, which replaces all of the source's. A copy that names no metadata keeps the source's",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "metadata": {
+ "colour": "blue"
+ },
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-ms-meta-colour",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blue"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "success"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/copy_status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "success"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/copy-source-if-match",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Copy a blob only if the source still has this ETag, named in x-ms-source-if-match",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_match": "\"fixture-etag\"",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-ms-source-if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "success"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/copy_status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "success"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/copy-source-if-match-failed",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report a copy whose source does not have the ETag in x-ms-source-if-match as a failed condition, 412 SourceConditionNotMet",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_match": "\"fixture-0123456789ab\"",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-ms-source-if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-0123456789ab\""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "SourceConditionNotMet"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "SourceConditionNotMetFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "SourceConditionNotMet"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/copy-source-if-unmodified-since-failed",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report a copy whose source changed after the time in x-ms-source-if-unmodified-since as a failed condition, 412 SourceConditionNotMet",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_unmodified_since": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-ms-source-if-unmodified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "SourceConditionNotMet"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "SourceConditionNotMetFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "SourceConditionNotMet"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/copy-if-none-match-exists",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report a copy with If-None-Match: * onto a blob that exists as a failed condition on the destination",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "if_none_match": "*",
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "*"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "BlobAlreadyExists"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobAlreadyExistsFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 409
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobAlreadyExists"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/copy-across-containers",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Copy a blob from another container of the same account, which x-ms-copy-source names in its URL",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_container": "source",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/source/object-tests/copy/source\\.txt"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "success"
+ },
+ "body": {
+ "encoding": "empty"
}
}
}
@@ -5833,59 +34270,222 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/copy_status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-be8efdb79010\""
+ "value": "success"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/copy-tier",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Copy a blob into another access tier, named in x-ms-access-tier",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt",
+ "tier": "Cool"
+ },
+ "exchanges": [
{
- "at": "/value/size",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-ms-access-tier",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Cool"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "success"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 11
+ "value": "ok"
}
},
{
- "at": "/value/content_type",
+ "at": "/value/copy_status",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "success"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/copy-source-key-encoded",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Copy from a key with a space, +, %, é, ? and #. The x-ms-copy-source URL percent-encodes every byte of the key outside letters, digits, -._~ and /",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/a b+c%é?#.txt"
+ },
+ "exchanges": [
{
- "at": "/value/version",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/a%20b%2[Bb]c%25%[Cc]3%[Aa]9%3[Ff]%23\\.txt"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "success"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7848460Z"
+ "value": "ok"
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/copy_status",
"optional": false,
"rule": {
"is": "equal",
- "value": "Zmlyc3RzZWNvbmQ="
+ "value": "success"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-container-missing",
+ "id": "operations/azure/copy-source-version",
"profile": "azure",
"lane": "core",
- "purpose": "get container missing",
+ "purpose": "Copy an earlier version of a blob, named by versionid in the x-ms-copy-source URL",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
],
"call": {
- "key": "object.txt",
- "op": "get"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt",
+ "source_version": "2024-01-01T00:00:00.0000000Z"
},
"exchanges": [
{
@@ -5897,7 +34497,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -5905,7 +34505,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -5915,22 +34515,31 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt\\?versionid=2024-01-01T00(?:%3[Aa]|:)00(?:%3[Aa]|:)00\\.0000000Z"
+ }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ContainerNotFound"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "success"
},
"body": {
- "encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
+ "encoding": "empty"
}
}
}
@@ -5943,39 +34552,33 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
+ "value": "ok"
}
},
{
- "at": "/code",
+ "at": "/value/copy_status",
"optional": false,
"rule": {
"is": "equal",
- "value": "ContainerNotFound"
+ "value": "success"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-containers",
+ "id": "operations/azure/copy-sync",
"profile": "azure",
"lane": "core",
- "purpose": "List the containers whose names start with a prefix",
+ "purpose": "Copy a blob with Copy Blob From URL, x-ms-requires-sync: true, which answers once the copy is done. The source must be readable by URL: by a SAS, or by a bearer token in x-ms-copy-source-authorization",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/list-containers2"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob-from-url"
],
"call": {
- "op": "azure.list_containers",
- "prefix": "otc-listed-"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt",
+ "sync": true
},
"exchanges": [
{
@@ -5987,7 +34590,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -5995,7 +34598,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -6007,37 +34610,40 @@
}
},
{
- "at": "/query/comp",
+ "at": "/headers/x-ms-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "list"
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-ms-requires-sync",
"optional": false,
"rule": {
"is": "equal",
- "value": "otc-listed-"
+ "value": "true"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "x-ms-copy-source-authorization"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "success"
},
"body": {
- "encoding": "utf8",
- "data": "otc-listed-otc-listed-aMon, 01 Jan 2024 00:00:00 GMT\"fixture-etag\"unlockedavailablefalsefalseotc-listed-bMon, 01 Jan 2024 00:00:00 GMT\"fixture-etag\"unlockedavailablefalsefalse"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
]
@@ -6053,30 +34659,30 @@
}
},
{
- "at": "/value/containers",
+ "at": "/value/copy_status",
"optional": false,
"rule": {
"is": "equal",
- "value": [
- "otc-listed-a",
- "otc-listed-b"
- ]
+ "value": "success"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/container-properties-absent",
+ "id": "operations/azure/copy-pending",
"profile": "azure",
"lane": "core",
- "purpose": "Report a missing container when reading its properties",
+ "purpose": "Report a copy that Azure answers as pending with its copy ID, so that a caller can follow it with a HEAD or abort it",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-container-properties"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
],
+ "origin": "transient",
+ "derived_from": "operations/azure/copy",
"call": {
- "container": "otc-absent",
- "op": "azure.container_properties"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -6088,7 +34694,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -6096,7 +34702,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/otc-absent"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -6108,28 +34714,29 @@
}
},
{
- "at": "/query/restype",
+ "at": "/headers/x-ms-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ContainerNotFound"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "pending"
},
"body": {
- "encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
+ "encoding": "empty"
}
}
}
@@ -6142,39 +34749,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/copy_status",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": "pending"
}
},
{
- "at": "/code",
+ "at": "/value/copy_id",
"optional": false,
"rule": {
"is": "equal",
- "value": "ContainerNotFound"
+ "value": "fixture-copy-id"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/container-properties",
+ "id": "operations/azure/put-from-url",
"profile": "azure",
"lane": "core",
- "purpose": "Read the properties of a container",
+ "purpose": "Write a block blob from the bytes at a URL with Put Blob From URL: a PUT with x-ms-blob-type: BlockBlob, x-ms-copy-source and no body, which answers once it is written",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-container-properties"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob-from-url"
],
"call": {
- "container": "otc-read",
- "op": "azure.container_properties"
+ "key": "object-tests/copy/target.txt",
+ "op": "azure.put_from_url",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -6186,7 +34794,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -6194,7 +34802,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/otc-read"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -6206,28 +34814,36 @@
}
},
{
- "at": "/query/restype",
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "x-ms-copy-source-authorization",
+ "x-ms-copy-source-blob-properties"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
"date": {
"from": "now"
},
"etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-has-immutability-policy": "false",
- "x-ms-has-legal-hold": "false",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "empty"
@@ -6245,21 +34861,32 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure/delete-container-absent",
+ "id": "operations/azure/abort-copy",
"profile": "azure",
"lane": "core",
- "purpose": "Report a missing container on delete",
+ "purpose": "Abort a pending copy by its copy ID, with x-ms-copy-action: abort",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/delete-container"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/abort-copy-blob"
],
+ "origin": "transient",
+ "derived_from": "operations/azure/abort-copy-finished",
"call": {
- "container": "otc-absent",
- "op": "azure.delete_container"
+ "copy_id": "fixture-copy-id",
+ "key": "object-tests/copy/target.txt",
+ "op": "azure.abort_copy"
},
"exchanges": [
{
@@ -6271,7 +34898,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "PUT"
}
},
{
@@ -6279,7 +34906,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/otc-absent"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -6291,28 +34918,140 @@
}
},
{
- "at": "/query/restype",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "copy"
+ }
+ },
+ {
+ "at": "/query/copyid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-copy-id"
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-action",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "abort"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 204,
+ "headers": {
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/abort-copy-finished",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report an abort of a copy that has finished as an error, 409 NoPendingCopyOperation",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/abort-copy-blob"
+ ],
+ "call": {
+ "copy_id": "fixture-copy-id",
+ "key": "object-tests/copy/target.txt",
+ "op": "azure.abort_copy"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "copy"
+ }
+ },
+ {
+ "at": "/query/copyid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-copy-id"
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-action",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "abort"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 409,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ContainerNotFound"
+ "x-ms-error-code": "NoPendingCopyOperation"
},
"body": {
"encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
+ "data": "NoPendingCopyOperationFixture error"
}
}
}
@@ -6333,7 +35072,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 409
}
},
{
@@ -6341,23 +35080,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ContainerNotFound"
+ "value": "NoPendingCopyOperation"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/delete-container",
+ "id": "operations/azure/get-page-ranges",
"profile": "azure",
"lane": "core",
- "purpose": "Delete a container",
+ "purpose": "List the written ranges of a page blob",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/delete-container"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-page-ranges"
],
"call": {
- "container": "otc-deleted",
- "op": "azure.delete_container"
+ "key": "object-tests/pages/object.vhd",
+ "op": "azure.get_page_ranges"
},
"exchanges": [
{
@@ -6369,7 +35108,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -6377,7 +35116,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/otc-deleted"
+ "value": "/fixture/object-tests/pages/object.vhd"
}
},
{
@@ -6389,26 +35128,32 @@
}
},
{
- "at": "/query/restype",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "pagelist"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 202,
+ "status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-content-length": "1024"
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "0511"
+ },
+ "framing": "chunked"
}
}
]
@@ -6422,21 +35167,36 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/ranges",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ {
+ "end": 512,
+ "start": 0
+ }
+ ]
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure/create-container-invalid-name",
+ "id": "operations/azure/upload-pages-unaligned",
"profile": "azure",
"lane": "core",
- "purpose": "Refuse a container name with capitals and an underscore",
+ "purpose": "Refuse a page write that does not start on a 512-byte boundary",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-page"
],
"call": {
- "container": "Otc_Invalid",
- "op": "azure.create_container"
+ "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=",
+ "key": "object-tests/pages/object.vhd",
+ "offset": 1,
+ "op": "azure.upload_pages"
},
"exchanges": [
{
@@ -6456,7 +35216,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/Otc_Invalid"
+ "value": "/fixture/object-tests/pages/object.vhd"
}
},
{
@@ -6464,15 +35224,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA="
}
},
{
- "at": "/query/restype",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "page"
+ }
+ },
+ {
+ "at": "/headers/x-ms-page-write",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "update"
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=1-512"
}
}
],
@@ -6485,11 +35261,11 @@
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidResourceName"
+ "x-ms-error-code": "InvalidHeaderValue"
},
"body": {
"encoding": "utf8",
- "data": "InvalidResourceNameFixture error"
+ "data": "InvalidHeaderValueFixture error"
}
}
}
@@ -6518,23 +35294,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidResourceName"
+ "value": "InvalidHeaderValue"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/create-container-exists",
+ "id": "operations/azure/upload-pages",
"profile": "azure",
"lane": "core",
- "purpose": "Refuse to create a container that exists",
+ "purpose": "Write the first page of a page blob",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/create-container"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-page"
],
"call": {
- "container": "otc-existing",
- "op": "azure.create_container"
+ "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=",
+ "key": "object-tests/pages/object.vhd",
+ "offset": 0,
+ "op": "azure.upload_pages"
},
"exchanges": [
{
@@ -6554,7 +35332,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/otc-existing"
+ "value": "/fixture/object-tests/pages/object.vhd"
}
},
{
@@ -6562,32 +35340,49 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA="
}
},
{
- "at": "/query/restype",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "page"
+ }
+ },
+ {
+ "at": "/headers/x-ms-page-write",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "update"
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=0-511"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ContainerAlreadyExists"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-sequence-number": "0",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "ContainerAlreadyExistsFixture error"
+ "encoding": "empty"
}
}
}
@@ -6600,39 +35395,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 409
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ContainerAlreadyExists"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/create-container",
+ "id": "operations/azure/create-page",
"profile": "azure",
"lane": "core",
- "purpose": "Create a container",
+ "purpose": "Create a page blob of 1,024 bytes",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/create-container"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
],
"call": {
- "container": "otc-created",
- "op": "azure.create_container"
+ "key": "object-tests/pages/object.vhd",
+ "op": "azure.create_page",
+ "size": 1024
},
"exchanges": [
{
@@ -6652,7 +35432,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/otc-created"
+ "value": "/fixture/object-tests/pages/object.vhd"
}
},
{
@@ -6664,11 +35444,19 @@
}
},
{
- "at": "/query/restype",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "PageBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-length",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1024"
}
}
],
@@ -6681,7 +35469,8 @@
"from": "now"
},
"etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "empty"
@@ -6704,17 +35493,17 @@
"refusal": null
},
{
- "id": "operations/azure/get-current-version-of-deleted-object",
+ "id": "operations/azure/append-block-to-block-blob",
"profile": "azure",
"lane": "core",
- "purpose": "get current version of deleted object",
+ "purpose": "Refuse an append to a block blob",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block"
],
"call": {
- "key": "object-tests/versions-mtydohr2/deleted.txt",
- "op": "get",
- "version": "2024-01-01T00:00:00.3127057Z"
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/append/object.log",
+ "op": "azure.append_block"
},
"exchanges": [
{
@@ -6726,7 +35515,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -6734,7 +35523,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/versions-mtydohr2/deleted.txt"
+ "value": "/fixture/object-tests/append/object.log"
}
},
{
@@ -6742,38 +35531,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
}
},
{
- "at": "/query/versionid",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.3127057Z"
+ "value": "appendblock"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 409,
"headers": {
- "content-md5": "4cgEiIU9hqudbez+MNiTDw==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-2fd2c5abfb9e\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.3127057Z"
+ "x-ms-error-code": "InvalidBlobType"
},
"body": {
- "encoding": "base64",
- "data": "ZzI="
+ "encoding": "utf8",
+ "data": "InvalidBlobTypeFixture error"
}
}
}
@@ -6786,71 +35569,148 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-2fd2c5abfb9e\""
+ "value": 409
}
},
{
- "at": "/value/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 2
+ "value": "InvalidBlobType"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/append-block-at-wrong-position",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Refuse an append whose position condition does not match the blob length",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block"
+ ],
+ "call": {
+ "append_position": 0,
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/append/object.log",
+ "op": "azure.append_block"
+ },
+ "exchanges": [
{
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/append/object.log"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "appendblock"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-condition-appendpos",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "0"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "AppendPositionConditionNotMet"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "AppendPositionConditionNotMetFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/content_md5_base64",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "4cgEiIU9hqudbez+MNiTDw=="
+ "value": "error"
}
},
{
- "at": "/value/version",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.3127057Z"
+ "value": 412
}
},
{
- "at": "/value/body_base64",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "ZzI="
+ "value": "AppendPositionConditionNotMet"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-current-version",
+ "id": "operations/azure/append-block",
"profile": "azure",
"lane": "core",
- "purpose": "get current version",
+ "purpose": "Append a block to an append blob and report its offset",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block"
],
"call": {
- "key": "object-tests/versions-mtydohr2/object.txt",
- "op": "get"
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/append/object.log",
+ "op": "azure.append_block"
},
"exchanges": [
{
@@ -6862,7 +35722,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -6870,7 +35730,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
+ "value": "/fixture/object-tests/append/object.log"
}
},
{
@@ -6878,32 +35738,34 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "appendblock"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-4768de772705\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.3326281Z"
+ "x-ms-blob-append-offset": "5",
+ "x-ms-blob-committed-block-count": "2",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "base64",
- "data": "djI="
+ "encoding": "empty"
}
}
}
@@ -6920,68 +35782,227 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/append_offset",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-4768de772705\""
+ "value": 5
}
},
{
- "at": "/value/size",
+ "at": "/value/committed_block_count",
"optional": false,
"rule": {
"is": "equal",
"value": 2
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/create-append",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Create an empty append blob",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
+ ],
+ "call": {
+ "key": "object-tests/append/object.log",
+ "op": "azure.create_append"
+ },
+ "exchanges": [
{
- "at": "/value/content_type",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/append/object.log"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "AppendBlob"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "ok"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-leased-if-match-without-lease-id",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Refuse a write to a leased object whose If-Match holds but that names no lease ID",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ ],
+ "call": {
+ "body_base64": "c2Vjb25k",
+ "if_match": "\"fixture-etag\"",
+ "key": "object-tests/leases/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/leases/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "LeaseIdMissing"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "LeaseIdMissingFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/content_md5_base64",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "GyZ2GcSBLMRu4oF0eITKUA=="
+ "value": "error"
}
},
{
- "at": "/value/version",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.3326281Z"
+ "value": 412
}
},
{
- "at": "/value/body_base64",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "djI="
+ "value": "LeaseIdMissing"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-deleted-snapshot",
+ "id": "operations/azure/put-leased-with-lease-id",
"profile": "azure",
"lane": "core",
- "purpose": "get deleted snapshot",
+ "purpose": "Write to a leased object with its lease ID",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
],
"call": {
- "key": "object-tests/snapshots/object.txt",
- "op": "get",
- "snapshot": "2024-01-01T00:00:00.8085866Z"
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/leases/object.txt",
+ "lease_id": "11111111-2222-3333-4444-555555555555",
+ "op": "put"
},
"exchanges": [
{
@@ -6993,7 +36014,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -7001,7 +36022,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
+ "value": "/fixture/object-tests/leases/object.txt"
}
},
{
@@ -7009,32 +36030,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
}
},
{
- "at": "/query/snapshot",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.8085866Z"
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-id",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "11111111-2222-3333-4444-555555555555"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobNotFound"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
+ "encoding": "empty"
}
}
}
@@ -7047,39 +36076,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlobNotFound"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-deleted-versioned-object",
+ "id": "operations/azure/put-leased-without-lease-id",
"profile": "azure",
"lane": "core",
- "purpose": "get deleted versioned object",
+ "purpose": "Refuse a write to a leased object that names no lease ID",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
],
"call": {
- "key": "object-tests/versions-mtydohr2/deleted.txt",
- "op": "get"
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/leases/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -7091,7 +36105,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -7099,7 +36113,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/versions-mtydohr2/deleted.txt"
+ "value": "/fixture/object-tests/leases/object.txt"
}
},
{
@@ -7107,24 +36121,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobNotFound"
+ "x-ms-error-code": "LeaseIdMissing"
},
"body": {
"encoding": "utf8",
- "data": "BlobNotFoundFixture error"
+ "data": "LeaseIdMissingFixture error"
}
}
}
@@ -7145,7 +36167,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 412
}
},
{
@@ -7153,23 +36175,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "LeaseIdMissing"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-duplicate-id",
+ "id": "operations/azure/lease-break",
"profile": "azure",
"lane": "core",
- "purpose": "get duplicate id",
+ "purpose": "Break a lease at once",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
],
"call": {
- "key": "object-tests/multipart/duplicate.bin",
- "op": "get"
+ "action": "break",
+ "break_period": 0,
+ "key": "object-tests/leases/object.txt",
+ "op": "azure.lease"
},
"exchanges": [
{
@@ -7181,7 +36205,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -7189,7 +36213,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/duplicate.bin"
+ "value": "/fixture/object-tests/leases/object.txt"
}
},
{
@@ -7199,29 +36223,46 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "lease"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-action",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "break"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-break-period",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "0"
+ }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-3792ba4cfc79\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.6153683Z"
+ "x-ms-lease-time": "0"
},
"body": {
- "encoding": "base64",
- "data": "c2FtZXNhbWU="
+ "encoding": "empty"
}
}
}
@@ -7236,61 +36277,23 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-3792ba4cfc79\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 8
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.6153683Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "c2FtZXNhbWU="
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/get-empty",
+ "id": "operations/azure/lease-release",
"profile": "azure",
"lane": "core",
- "purpose": "get empty",
+ "purpose": "Release a lease",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
],
"call": {
- "key": "object-tests/write/empty.bin",
- "op": "get"
+ "action": "release",
+ "key": "object-tests/leases/object.txt",
+ "lease_id": "11111111-2222-3333-4444-555555555555",
+ "op": "azure.lease"
},
"exchanges": [
{
@@ -7302,7 +36305,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -7310,7 +36313,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/empty.bin"
+ "value": "/fixture/object-tests/leases/object.txt"
}
},
{
@@ -7320,6 +36323,30 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "lease"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-action",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "release"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-id",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "11111111-2222-3333-4444-555555555555"
+ }
}
],
"allow_headers": [],
@@ -7327,23 +36354,14 @@
"response": {
"status": 200,
"headers": {
- "content-md5": "1B2M2Y8AsgTpgAmY7PhCfg==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-ee13937a1c94\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7573734Z"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "empty"
}
}
}
@@ -7358,70 +36376,24 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ee13937a1c94\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1B2M2Y8AsgTpgAmY7PhCfg=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7573734Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/get-if-match-current",
+ "id": "operations/azure/lease-acquire-leased",
"profile": "azure",
"lane": "core",
- "purpose": "get if match current",
+ "purpose": "Refuse a second lease while another lease holds the object",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
],
"call": {
- "if_match": "\"fixture-16c44f0af72d\"",
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "action": "acquire",
+ "duration": 15,
+ "key": "object-tests/leases/object.txt",
+ "op": "azure.lease",
+ "proposed_lease_id": "66666666-7777-8888-9999-000000000000"
},
"exchanges": [
{
@@ -7433,7 +36405,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -7441,7 +36413,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/leases/object.txt"
}
},
{
@@ -7453,36 +36425,52 @@
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-16c44f0af72d\""
+ "value": "lease"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-action",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "acquire"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-duration",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "15"
+ }
+ },
+ {
+ "at": "/headers/x-ms-proposed-lease-id",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "66666666-7777-8888-9999-000000000000"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 409,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-error-code": "LeaseAlreadyPresent"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "encoding": "utf8",
+ "data": "LeaseAlreadyPresentFixture error"
}
}
}
@@ -7495,72 +36483,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": "error"
}
},
{
- "at": "/value/version",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
+ "value": 409
}
},
{
- "at": "/value/body_base64",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": "LeaseAlreadyPresent"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-if-none-match-other",
+ "id": "operations/azure/lease-acquire",
"profile": "azure",
"lane": "core",
- "purpose": "get if none match other",
+ "purpose": "Acquire a lease on an object with a proposed lease ID",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
],
"call": {
- "if_none_match": "\"fixture-088e5dc109cf\"",
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "action": "acquire",
+ "duration": 15,
+ "key": "object-tests/leases/object.txt",
+ "op": "azure.lease",
+ "proposed_lease_id": "11111111-2222-3333-4444-555555555555"
},
"exchanges": [
{
@@ -7572,7 +36530,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -7580,7 +36538,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/leases/object.txt"
}
},
{
@@ -7592,36 +36550,52 @@
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-088e5dc109cf\""
+ "value": "lease"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-action",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "acquire"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-duration",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "15"
+ }
+ },
+ {
+ "at": "/headers/x-ms-proposed-lease-id",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "11111111-2222-3333-4444-555555555555"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-lease-id": "11111111-2222-3333-4444-555555555555"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "encoding": "empty"
}
}
}
@@ -7638,67 +36612,31 @@
}
},
{
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
- }
- },
- {
- "at": "/value/body_base64",
+ "at": "/value/lease_id",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": "11111111-2222-3333-4444-555555555555"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-key-with-hash",
+ "id": "operations/azure/put-with-tags",
"profile": "azure",
"lane": "core",
- "purpose": "get key with hash",
+ "purpose": "Write an object with tags",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
],
"call": {
- "key": "object-tests/names/hash#tag.txt",
- "op": "get"
+ "body_base64": "Zmlyc3Q=",
+ "key": "object-tests/tags/object.txt",
+ "op": "put",
+ "tags": {
+ "project": "object-tests"
+ }
},
"exchanges": [
{
@@ -7710,7 +36648,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -7718,7 +36656,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/names/hash#tag.txt"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
@@ -7726,32 +36664,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "Zmlyc3Q="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-tags",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "project=object-tests"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-25c967601e53\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.9185620Z"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
+ "encoding": "empty"
}
}
}
@@ -7766,69 +36712,25 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-25c967601e53\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.9185620Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MQ=="
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/get-key-with-percent",
+ "id": "operations/azure/put-with-tags-special-characters",
"profile": "azure",
"lane": "core",
- "purpose": "get key with percent",
+ "purpose": "Write a blob with an index tag that holds a space and each of + - = . _ : /, percent-encoded in x-ms-tags",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
],
"call": {
- "key": "object-tests/names/percent%20.txt",
- "op": "get"
+ "body_base64": "Zmlyc3Q=",
+ "key": "object-tests/tags/object.txt",
+ "op": "put",
+ "tags": {
+ "a b+c-d=e.f_g:h/i": "k l+m-n=o.p_q:r/s"
+ }
},
"exchanges": [
{
@@ -7840,7 +36742,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -7848,7 +36750,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/names/percent%20.txt"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
@@ -7856,32 +36758,43 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "Zmlyc3Q="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-tags",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "a%20b%2Bc-d%3De.f_g%3Ah%2Fi=k%20l%2Bm-n%3Do.p_q%3Ar%2Fs",
+ "a%20b%2Bc-d%3De.f_g:h/i=k%20l%2Bm-n%3Do.p_q:r/s"
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-a88830604904\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.5807236Z"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
+ "encoding": "empty"
}
}
}
@@ -7896,69 +36809,32 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-a88830604904\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.5807236Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MQ=="
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/get-key-with-plus",
+ "id": "operations/azure/put-with-tags-duplicate-key",
"profile": "azure",
"lane": "core",
- "purpose": "get key with plus",
+ "purpose": "Report a write whose x-ms-tags names one key twice as an error. A client may refuse it, or report it unsupported where its API cannot repeat a key",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
],
"call": {
- "key": "object-tests/names/plus+plus.txt",
- "op": "get"
+ "body_base64": "Zmlyc3Q=",
+ "key": "object-tests/tags/object.txt",
+ "op": "put",
+ "tags": [
+ {
+ "key": "project",
+ "value": "a"
+ },
+ {
+ "key": "project",
+ "value": "b"
+ }
+ ]
},
"exchanges": [
{
@@ -7970,7 +36846,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -7978,7 +36854,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/names/plus+plus.txt"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
@@ -7986,32 +36862,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "Zmlyc3Q="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-tags",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "project=a&project=b"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-3d8677cc8a95\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.8000075Z"
+ "x-ms-error-code": "DuplicateTagNames"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
+ "encoding": "utf8",
+ "data": "DuplicateTagNamesFixture error"
}
}
}
@@ -8024,71 +36908,81 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-3d8677cc8a95\""
+ "value": 400
}
},
{
- "at": "/value/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "DuplicateTagNames"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/content_type",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "refused"
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/version",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.8000075Z"
+ "value": "tags"
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/status",
+ "optional": true,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "DuplicateTagNames"
}
}
],
- "refusal": null
+ "decline_permitted": true
},
{
- "id": "operations/azure/get-key-with-space",
+ "id": "operations/azure/get-tags",
"profile": "azure",
"lane": "core",
- "purpose": "get key space",
+ "purpose": "Read the tags of an object",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-tags"
],
"call": {
- "key": "a b",
- "op": "get"
+ "key": "object-tests/tags/object.txt",
+ "op": "azure.get_tags"
},
"exchanges": [
{
@@ -8108,7 +37002,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/a b"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
@@ -8118,6 +37012,14 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "tags"
+ }
}
],
"allow_headers": [],
@@ -8125,24 +37027,14 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ }
},
"body": {
- "encoding": "base64",
- "data": "aGVsbG8="
+ "encoding": "utf8",
+ "data": "projectobject-tests"
}
}
}
@@ -8159,27 +37051,29 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/tags",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": {
+ "project": "object-tests"
+ }
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-key-with-question",
+ "id": "operations/azure/get-tags-none",
"profile": "azure",
"lane": "core",
- "purpose": "get key question",
+ "purpose": "Report no blob index tags for a blob without any, which Azure answers with an empty TagSet",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-tags"
],
"call": {
- "key": "a?b",
- "op": "get"
+ "key": "object-tests/tags/object.txt",
+ "op": "azure.get_tags"
},
"exchanges": [
{
@@ -8199,7 +37093,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/a?b"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
@@ -8209,6 +37103,14 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "tags"
+ }
}
],
"allow_headers": [],
@@ -8216,24 +37118,14 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ }
},
"body": {
- "encoding": "base64",
- "data": "aGVsbG8="
+ "encoding": "utf8",
+ "data": ""
}
}
}
@@ -8250,27 +37142,30 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/tags",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": {}
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-key-with-non-ascii",
+ "id": "operations/azure/set-tags",
"profile": "azure",
"lane": "core",
- "purpose": "get key unicode",
+ "purpose": "Replace the tags of an object",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags"
],
"call": {
- "key": "café/雪",
- "op": "get"
+ "key": "object-tests/tags/object.txt",
+ "op": "azure.set_tags",
+ "tags": {
+ "project": "object-tests"
+ }
},
"exchanges": [
{
@@ -8282,7 +37177,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -8290,41 +37185,48 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/café/雪"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "projectobject-tests"
+ }
+ },
+ {
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/xml; charset=UTF-8"
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 204,
"headers": {
- "content-type": "application/octet-stream",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ }
},
"body": {
- "encoding": "base64",
- "data": "aGVsbG8="
+ "encoding": "empty"
}
}
}
@@ -8339,29 +37241,33 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "aGVsbG8="
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/get-key-with-separators",
+ "id": "operations/azure/set-tags-10-tags",
"profile": "azure",
"lane": "core",
- "purpose": "get key separators",
+ "purpose": "Set 10 tags, the most an object takes",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags"
],
"call": {
- "key": "a//b/",
- "op": "get"
+ "key": "object-tests/tags/object.txt",
+ "op": "azure.set_tags",
+ "tags": {
+ "tag00": "value0",
+ "tag01": "value1",
+ "tag02": "value2",
+ "tag03": "value3",
+ "tag04": "value4",
+ "tag05": "value5",
+ "tag06": "value6",
+ "tag07": "value7",
+ "tag08": "value8",
+ "tag09": "value9"
+ }
},
"exchanges": [
{
@@ -8373,7 +37279,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -8381,41 +37287,48 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/a//b/"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "tag00value0tag01value1tag02value2tag03value3tag04value4tag05value5tag06value6tag07value7tag08value8tag09value9"
+ }
+ },
+ {
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/xml; charset=UTF-8"
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 204,
"headers": {
- "content-type": "application/octet-stream",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ }
},
"body": {
- "encoding": "base64",
- "data": "aGVsbG8="
+ "encoding": "empty"
}
}
}
@@ -8430,29 +37343,34 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "aGVsbG8="
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/get-metadata-empty-value",
+ "id": "operations/azure/set-tags-11-tags",
"profile": "azure",
"lane": "core",
- "purpose": "get metadata empty value",
+ "purpose": "Report 11 tags, one more than an object takes, as an error. A client may refuse them",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags"
],
"call": {
- "key": "object-tests/metadata/empty-value.txt",
- "op": "get"
+ "key": "object-tests/tags/object.txt",
+ "op": "azure.set_tags",
+ "tags": {
+ "tag00": "value0",
+ "tag01": "value1",
+ "tag02": "value2",
+ "tag03": "value3",
+ "tag04": "value4",
+ "tag05": "value5",
+ "tag06": "value6",
+ "tag07": "value7",
+ "tag08": "value8",
+ "tag09": "value9",
+ "tag10": "value10"
+ }
},
"exchanges": [
{
@@ -8464,7 +37382,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -8472,41 +37390,51 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/empty-value.txt"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "tag00value0tag01value1tag02value2tag03value3tag04value4tag05value5tag06value6tag07value7tag08value8tag09value9tag10value10"
+ }
+ },
+ {
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/xml; charset=UTF-8"
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-333d95b64818\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-meta-empty": "",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.9480929Z"
+ "x-ms-error-code": "TagsTooLarge"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
+ "encoding": "utf8",
+ "data": "TagsTooLargeFixture error"
}
}
}
@@ -8519,82 +37447,176 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-333d95b64818\""
+ "value": 400
}
},
{
- "at": "/value/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "TagsTooLarge"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/content_type",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "refused"
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/version",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.9480929Z"
+ "value": "tags"
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/status",
+ "optional": true,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": 400
}
},
{
- "at": "/value/metadata",
- "optional": false,
+ "at": "/code",
+ "optional": true,
"rule": {
"is": "equal",
- "value": {
- "empty": ""
+ "value": "TagsTooLarge"
+ }
+ }
+ ]
+ },
+ {
+ "id": "operations/azure/set-tags-key-128",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Set a tag whose key has 128 characters, the longest a key may be",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags"
+ ],
+ "call": {
+ "key": "object-tests/tags/object.txt",
+ "op": "azure.set_tags",
+ "tags": {
+ "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk": "v"
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/tags/object.txt"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkv"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/xml; charset=UTF-8"
+ ]
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 204,
+ "headers": {
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
}
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-metadata-of-snapshot",
+ "id": "operations/azure/set-tags-key-129",
"profile": "azure",
"lane": "core",
- "purpose": "get metadata of snapshot",
+ "purpose": "Report a tag key of 129 characters, one more than a key may have, as an error. A client may refuse it",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags"
],
"call": {
- "key": "object-tests/metadata/snapshotted.txt",
- "op": "get",
- "snapshot": "2024-01-01T00:00:00.1300046Z"
+ "key": "object-tests/tags/object.txt",
+ "op": "azure.set_tags",
+ "tags": {
+ "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk": "v"
+ }
},
"exchanges": [
{
@@ -8606,7 +37628,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -8614,46 +37636,51 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/snapshotted.txt"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkv"
}
},
{
- "at": "/query/snapshot",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.1300046Z"
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/xml; charset=UTF-8"
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-b4e7f3b8fb36\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-meta-name": "value",
- "x-ms-server-encrypted": "true"
+ "x-ms-error-code": "TagsTooLarge"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
+ "encoding": "utf8",
+ "data": "TagsTooLargeFixture error"
}
}
}
@@ -8666,84 +37693,83 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-b4e7f3b8fb36\""
+ "value": 400
}
},
{
- "at": "/value/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "TagsTooLarge"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/content_type",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "refused"
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/parameter",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "tags"
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/status",
+ "optional": true,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": 400
}
},
{
- "at": "/value/metadata",
- "optional": false,
+ "at": "/code",
+ "optional": true,
"rule": {
"is": "equal",
- "value": {
- "name": "value"
- }
+ "value": "TagsTooLarge"
}
}
- ],
- "refusal": null
+ ]
},
{
- "id": "operations/azure/get-metadata-replaced",
+ "id": "operations/azure/set-tags-value-256",
"profile": "azure",
"lane": "core",
- "purpose": "get metadata replaced",
+ "purpose": "Set a tag whose value has 256 characters, the longest a value may be",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags"
],
"call": {
- "key": "object-tests/metadata/replaced.txt",
- "op": "get"
+ "key": "object-tests/tags/object.txt",
+ "op": "azure.set_tags",
+ "tags": {
+ "k": "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv"
+ }
},
"exchanges": [
{
@@ -8755,7 +37781,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -8763,40 +37789,48 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/replaced.txt"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "kvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv"
+ }
+ },
+ {
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/xml; charset=UTF-8"
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 204,
"headers": {
- "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
- },
- "etag": "\"fixture-37b036d8c13f\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7487600Z"
+ }
},
"body": {
- "encoding": "base64",
- "data": "Mg=="
+ "encoding": "empty"
}
}
}
@@ -8811,69 +37845,24 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-37b036d8c13f\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "yB5yjZ1ML2NvBn+JzBSGLA=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7487600Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Mg=="
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/get-metadata",
+ "id": "operations/azure/set-tags-value-257",
"profile": "azure",
"lane": "core",
- "purpose": "get metadata",
+ "purpose": "Report a tag value of 257 characters, one more than a value may have, as an error. A client may refuse it",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags"
],
"call": {
- "key": "object-tests/metadata/object.txt",
- "op": "get"
+ "key": "object-tests/tags/object.txt",
+ "op": "azure.set_tags",
+ "tags": {
+ "k": "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv"
+ }
},
"exchanges": [
{
@@ -8885,7 +37874,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -8893,42 +37882,51 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/object.txt"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "kvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv"
+ }
+ },
+ {
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/xml; charset=UTF-8"
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-9abbc5e374ca\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-meta-name": "value",
- "x-ms-meta-second": "2",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7035036Z"
+ "x-ms-error-code": "TagsTooLarge"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
+ "encoding": "utf8",
+ "data": "TagsTooLargeFixture error"
}
}
}
@@ -8941,82 +37939,83 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-9abbc5e374ca\""
+ "value": 400
}
},
{
- "at": "/value/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "TagsTooLarge"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/content_type",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "refused"
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/version",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7035036Z"
+ "value": "tags"
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/status",
+ "optional": true,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": 400
}
},
{
- "at": "/value/metadata",
- "optional": false,
+ "at": "/code",
+ "optional": true,
"rule": {
"is": "equal",
- "value": {
- "name": "value",
- "second": "2"
- }
+ "value": "TagsTooLarge"
}
}
- ],
- "refusal": null
+ ]
},
{
- "id": "operations/azure/get-metadata-ignores-unknown-headers",
+ "id": "operations/azure/set-tags-special-characters",
"profile": "azure",
"lane": "core",
- "purpose": "Surface user metadata; unknown headers must not become metadata.",
+ "purpose": "Set a blob index tag with a space and each of + - = . _ : /, which Azure allows, escaped as XML text",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags"
],
"call": {
- "key": "object",
- "op": "get"
+ "key": "object-tests/tags/object.txt",
+ "op": "azure.set_tags",
+ "tags": {
+ "a b+c-d=e.f_g:h/i": "k l+m-n=o.p_q:r/s"
+ }
},
"exchanges": [
{
@@ -9028,7 +38027,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -9036,43 +38035,48 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "a b+c-d=e.f_g:h/ik l+m-n=o.p_q:r/s"
+ }
+ },
+ {
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/xml; charset=UTF-8"
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 204,
"headers": {
- "content-type": "application/octet-stream",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-meta-author": "Ada",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03",
- "x-unrelated": "not metadata"
+ }
},
"body": {
- "encoding": "base64",
- "data": "aGVsbG8="
+ "encoding": "empty"
}
}
}
@@ -9087,39 +38091,24 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "aGVsbG8="
- }
- },
- {
- "at": "/value/metadata",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": {
- "author": "Ada"
- }
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/get-missing",
+ "id": "operations/azure/set-tags-invalid-character",
"profile": "azure",
"lane": "core",
- "purpose": "get missing",
+ "purpose": "Report a blob index tag key with @, which Azure does not allow, as an error. A client may refuse it",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags"
],
"call": {
- "key": "object-tests/read/absent.txt",
- "op": "get"
+ "key": "object-tests/tags/object.txt",
+ "op": "azure.set_tags",
+ "tags": {
+ "a@b": "c"
+ }
},
"exchanges": [
{
@@ -9131,7 +38120,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -9139,32 +38128,51 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/absent.txt"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "a@bc"
+ }
+ },
+ {
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/xml; charset=UTF-8"
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobNotFound"
+ "x-ms-error-code": "InvalidTag"
},
"body": {
"encoding": "utf8",
- "data": "BlobNotFoundFixture error"
+ "data": "InvalidTagFixture error"
}
}
}
@@ -9185,7 +38193,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 400
}
},
{
@@ -9193,26 +38201,74 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "InvalidTag"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidTag"
+ }
+ }
+ ]
},
{
- "id": "operations/azure/get-missing-code-in-body",
+ "id": "operations/azure/set-tags-duplicate-key",
"profile": "azure",
"lane": "core",
- "purpose": "get missing, with the error code only in the XML body",
+ "purpose": "Report blob index tags that name one key twice as an error. A client may refuse them, or report them unsupported where its API cannot repeat a key",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags"
],
- "origin": "constructed",
"call": {
- "key": "object-tests/read/absent.txt",
- "op": "get"
+ "key": "object-tests/tags/object.txt",
+ "op": "azure.set_tags",
+ "tags": [
+ {
+ "key": "project",
+ "value": "a"
+ },
+ {
+ "key": "project",
+ "value": "b"
+ }
+ ]
},
"exchanges": [
{
@@ -9224,7 +38280,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -9232,31 +38288,51 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/absent.txt"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "projectaprojectb"
+ }
+ },
+ {
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/xml; charset=UTF-8"
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "x-ms-error-code": "InvalidXmlDocument"
},
"body": {
"encoding": "utf8",
- "data": "BlobNotFoundFixture error"
+ "data": "InvalidXmlDocumentFixture error"
}
}
}
@@ -9277,7 +38353,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 400
}
},
{
@@ -9285,24 +38361,67 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "InvalidXmlDocument"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidXmlDocument"
+ }
+ }
+ ],
+ "decline_permitted": true
},
{
- "id": "operations/azure/get-not-modified",
+ "id": "operations/azure/put-with-tier",
"profile": "azure",
"lane": "core",
- "purpose": "get not modified",
+ "purpose": "Write an object straight into the Cool access tier",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
],
"call": {
- "if_none_match": "\"fixture-16c44f0af72d\"",
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "body_base64": "Zmlyc3Q=",
+ "key": "object-tests/tiers/object.txt",
+ "op": "put",
+ "tier": "Cool"
},
"exchanges": [
{
@@ -9314,7 +38433,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -9322,7 +38441,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/tiers/object.txt"
}
},
{
@@ -9330,31 +38449,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "Zmlyc3Q="
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-16c44f0af72d\""
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-access-tier",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Cool"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 304,
+ "status": 201,
"headers": {
"date": {
"from": "now"
},
- "x-ms-error-code": "ConditionNotMet"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "empty"
}
}
}
@@ -9367,40 +38495,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 304
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ConditionNotMet"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-precondition-failed",
+ "id": "operations/azure/set-tier-unknown",
"profile": "azure",
"lane": "core",
- "purpose": "get precondition failed",
+ "purpose": "Refuse an access tier the service does not have",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tier"
],
"call": {
- "if_match": "\"fixture-088e5dc109cf\"",
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "key": "object-tests/tiers/object.txt",
+ "op": "azure.set_tier",
+ "tier": "Warm"
},
"exchanges": [
{
@@ -9412,7 +38524,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -9420,7 +38532,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/tiers/object.txt"
}
},
{
@@ -9432,28 +38544,36 @@
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-088e5dc109cf\""
+ "value": "tier"
+ }
+ },
+ {
+ "at": "/headers/x-ms-access-tier",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Warm"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ConditionNotMet"
+ "x-ms-error-code": "InvalidHeaderValue"
},
"body": {
"encoding": "utf8",
- "data": "ConditionNotMetFixture error"
+ "data": "InvalidHeaderValueFixture error"
}
}
}
@@ -9474,7 +38594,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": 400
}
},
{
@@ -9482,24 +38602,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": "InvalidHeaderValue"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-previous-version-of-deleted-object",
+ "id": "operations/azure/set-tier-cool",
"profile": "azure",
"lane": "core",
- "purpose": "get previous version of deleted object",
+ "purpose": "Move an object to the Cool access tier",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tier"
],
"call": {
- "key": "object-tests/versions-mtydohr2/deleted.txt",
- "op": "get",
- "version": "2024-01-01T00:00:00.0160641Z"
+ "key": "object-tests/tiers/object.txt",
+ "op": "azure.set_tier",
+ "tier": "Cool"
},
"exchanges": [
{
@@ -9511,7 +38631,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -9519,7 +38639,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/versions-mtydohr2/deleted.txt"
+ "value": "/fixture/object-tests/tiers/object.txt"
}
},
{
@@ -9531,11 +38651,19 @@
}
},
{
- "at": "/query/versionid",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.0160641Z"
+ "value": "tier"
+ }
+ },
+ {
+ "at": "/headers/x-ms-access-tier",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Cool"
}
}
],
@@ -9544,21 +38672,12 @@
"response": {
"status": 200,
"headers": {
- "content-md5": "ASCk+RlqX5659SPzH5FNpw==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
- },
- "etag": "\"fixture-3f26f9cf7bbe\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.0160641Z"
+ }
},
"body": {
- "encoding": "base64",
- "data": "ZzE="
+ "encoding": "empty"
}
}
}
@@ -9573,70 +38692,22 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-3f26f9cf7bbe\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ASCk+RlqX5659SPzH5FNpw=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.0160641Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ZzE="
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/get-previous-version",
+ "id": "operations/azure/set-tier-rehydrate",
"profile": "azure",
"lane": "core",
- "purpose": "get previous version",
+ "purpose": "Report a tier change that Azure accepts with 202, as it does when an archived blob starts to rehydrate, as a success",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tier"
],
"call": {
- "key": "object-tests/versions-mtydohr2/object.txt",
- "op": "get",
- "version": "2024-01-01T00:00:00.2318906Z"
+ "key": "object-tests/tiers/object.txt",
+ "op": "azure.set_tier",
+ "tier": "Hot"
},
"exchanges": [
{
@@ -9648,7 +38719,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -9656,7 +38727,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
+ "value": "/fixture/object-tests/tiers/object.txt"
}
},
{
@@ -9668,34 +38739,33 @@
}
},
{
- "at": "/query/versionid",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2318906Z"
+ "value": "tier"
+ }
+ },
+ {
+ "at": "/headers/x-ms-access-tier",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Hot"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
- },
- "etag": "\"fixture-5769a0807b46\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2318906Z"
+ }
},
"body": {
- "encoding": "base64",
- "data": "djE="
+ "encoding": "empty"
}
}
}
@@ -9710,73 +38780,24 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-5769a0807b46\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ZlTHNMyrj0QP8IJetEPcfw=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.2318906Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "djE="
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/get-range-inverted",
+ "id": "operations/azure/put-internal-error",
"profile": "azure",
"lane": "core",
- "purpose": "get range inverted",
+ "purpose": "Report a 500 InternalError answer as an error, after at most 5 retries",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
],
+ "origin": "transient",
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 2,
- "start": 6
- }
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -9788,7 +38809,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -9796,7 +38817,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -9804,43 +38825,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/headers/range",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=6-1"
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 500,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-error-code": "InternalError"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "encoding": "utf8",
+ "data": "InternalErrorThe server encountered an internal error. Please retry the request."
}
}
- },
+ }
+ ]
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -9848,7 +38867,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -9856,7 +38875,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -9864,148 +38883,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/headers/x-ms-range",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=6-1"
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 500,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-error-code": "InternalError"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "encoding": "utf8",
+ "data": "InternalErrorThe server encountered an internal error. Please retry the request."
}
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
+ ],
+ "optional": true
},
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "range"
- }
- }
- ],
- "decline_permitted": true
- },
- {
- "id": "operations/azure/get-range-not-satisfiable",
- "profile": "azure",
- "lane": "core",
- "purpose": "get range not satisfiable",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "start": 40
- }
- },
- "exchanges": [
{
"alternatives": [
{
@@ -10015,7 +38926,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -10023,7 +38934,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -10031,36 +38942,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/headers/range",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=40-"
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 416,
+ "status": 500,
"headers": {
- "content-range": "bytes */30",
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidRange"
+ "x-ms-error-code": "InternalError"
},
"body": {
"encoding": "utf8",
- "data": "InvalidRangeFixture error"
+ "data": "InternalErrorThe server encountered an internal error. Please retry the request."
}
}
- },
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -10068,7 +38985,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -10076,7 +38993,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -10084,84 +39001,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/headers/x-ms-range",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=40-"
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 416,
+ "status": 500,
"headers": {
- "content-range": "bytes */30",
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidRange"
+ "x-ms-error-code": "InternalError"
},
"body": {
"encoding": "utf8",
- "data": "InvalidRangeFixture error"
+ "data": "InternalErrorThe server encountered an internal error. Please retry the request."
}
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 416
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidRange"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/get-range-past-the-end",
- "profile": "azure",
- "lane": "core",
- "purpose": "get range past the end",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 64,
- "start": 28
- }
- },
- "exchanges": [
{
"alternatives": [
{
@@ -10171,7 +39044,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -10179,7 +39052,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -10187,43 +39060,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/headers/range",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=28-63"
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 500,
"headers": {
- "content-range": "bytes 28-29/30",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-error-code": "InternalError"
},
"body": {
- "encoding": "base64",
- "data": "Y3Q="
+ "encoding": "utf8",
+ "data": "InternalErrorThe server encountered an internal error. Please retry the request."
}
}
- },
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -10231,7 +39103,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -10239,7 +39111,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -10247,44 +39119,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/headers/x-ms-range",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=28-63"
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 500,
"headers": {
- "content-range": "bytes 28-29/30",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-error-code": "InternalError"
},
"body": {
- "encoding": "base64",
- "data": "Y3Q="
+ "encoding": "utf8",
+ "data": "InternalErrorThe server encountered an internal error. Please retry the request."
}
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -10293,67 +39160,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
+ "value": "error"
}
},
{
- "at": "/value/version",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
+ "value": 500
}
},
{
- "at": "/value/body_base64",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "Y3Q="
+ "value": "InternalError"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-range-single-byte",
+ "id": "operations/azure/put-if-unmodified-since-past",
"profile": "azure",
"lane": "core",
- "purpose": "get range single byte",
+ "purpose": "Refuse a write with 412 when the object changed after If-Unmodified-Since",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 1,
- "start": 0
- }
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -10365,7 +39206,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -10373,7 +39214,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -10381,100 +39222,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=0-0"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 0-0/30",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-16c44f0af72d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
- },
- "body": {
- "encoding": "base64",
- "data": "MA=="
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/body_base64",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "BlockBlob"
}
},
{
- "at": "/headers/x-ms-range",
+ "at": "/headers/if-unmodified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=0-0"
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 412,
"headers": {
- "content-range": "bytes 0-0/30",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-error-code": "ConditionNotMet"
},
"body": {
- "encoding": "base64",
- "data": "MA=="
+ "encoding": "utf8",
+ "data": "ConditionNotMetFixture error"
}
}
}
@@ -10487,67 +39270,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
+ "value": "error"
}
},
{
- "at": "/value/version",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
+ "value": 412
}
},
{
- "at": "/value/body_base64",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "MA=="
+ "value": "ConditionNotMet"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-range",
+ "id": "operations/azure/put-content-encoding-gzip",
"profile": "azure",
"lane": "core",
- "purpose": "get range",
+ "purpose": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 6,
- "start": 2
- }
+ "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA",
+ "content_encoding": "gzip",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -10559,7 +39316,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -10567,7 +39324,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -10575,40 +39332,46 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
}
},
{
- "at": "/headers/range",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=2-5"
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-encoding",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "gzip"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 201,
"headers": {
- "content-range": "bytes 2-5/30",
- "content-type": "application/octet-stream",
+ "content-md5": "CVsDGvNMZH4SPA4MSLswrA==",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
+ "etag": "\"fixture-b9991ef94e3d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
},
"body": {
"encoding": "base64",
- "data": "MjM0NQ=="
+ "data": ""
}
}
},
@@ -10619,7 +39382,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -10627,7 +39390,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -10635,40 +39398,46 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
}
},
{
- "at": "/headers/x-ms-range",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=2-5"
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/content-encoding",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "gzip"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 201,
"headers": {
- "content-range": "bytes 2-5/30",
- "content-type": "application/octet-stream",
+ "content-md5": "CVsDGvNMZH4SPA4MSLswrA==",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
+ "etag": "\"fixture-b9991ef94e3d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
},
"body": {
"encoding": "base64",
- "data": "MjM0NQ=="
+ "data": ""
}
}
}
@@ -10689,23 +39458,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 4
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
+ "value": "\"fixture-b9991ef94e3d\""
}
},
{
@@ -10713,34 +39466,28 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MjM0NQ=="
+ "value": "2024-01-01T00:00:00.2084665Z"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-range-open",
+ "id": "operations/azure/put-content-properties",
"profile": "azure",
"lane": "core",
- "purpose": "get range open",
+ "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object",
- "op": "get",
- "range": {
- "start": 3
- }
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "cache_control": "max-age=3600",
+ "content_disposition": "attachment; filename=\"report.txt\"",
+ "content_language": "nl-NL",
+ "content_type": "text/plain; charset=utf-8",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -10752,7 +39499,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -10760,7 +39507,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -10768,42 +39515,70 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/headers/range",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=3-"
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain; charset=utf-8"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-language",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "nl-NL"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename=\"report.txt\""
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-cache-control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 201,
"headers": {
- "content-range": "bytes 3-4/5",
- "content-type": "application/octet-stream",
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
+ "etag": "\"fixture-b9991ef94e3d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
"x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
},
"body": {
"encoding": "base64",
- "data": "bG8="
+ "data": ""
}
}
},
@@ -10814,7 +39589,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -10822,7 +39597,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -10830,42 +39605,70 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/headers/x-ms-range",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=3-"
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain; charset=utf-8"
+ }
+ },
+ {
+ "at": "/headers/content-language",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "nl-NL"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename=\"report.txt\""
+ }
+ },
+ {
+ "at": "/headers/cache-control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 201,
"headers": {
- "content-range": "bytes 3-4/5",
- "content-type": "application/octet-stream",
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
+ "etag": "\"fixture-b9991ef94e3d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
"x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
},
"body": {
"encoding": "base64",
- "data": "bG8="
+ "data": ""
}
}
}
@@ -10882,27 +39685,37 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "bG8="
+ "value": "\"fixture-b9991ef94e3d\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.2084665Z"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-reordered",
+ "id": "operations/azure/put-content-type-non-ascii",
"profile": "azure",
"lane": "core",
- "purpose": "get reordered",
+ "purpose": "Write a Content-Type with a parameter outside ASCII as its UTF-8 bytes. A flat account returns them as it got them, so they read back",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/multipart/reordered.bin",
- "op": "get"
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "content_type": "text/plain; name=\"été.txt\"",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -10914,7 +39727,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -10922,7 +39735,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/reordered.bin"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -10930,31 +39743,46 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain; name=\"été.txt\""
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-type": "application/octet-stream",
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
"date": {
"from": "now"
},
- "etag": "\"fixture-8d8ae06ceb7d\"",
+ "etag": "\"fixture-b9991ef94e3d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2664276Z"
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
},
"body": {
"encoding": "base64",
- "data": "c2Vjb25kZmlyc3Q="
+ "data": ""
}
}
}
@@ -10975,23 +39803,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-8d8ae06ceb7d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 11
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
+ "value": "\"fixture-b9991ef94e3d\""
}
},
{
@@ -10999,31 +39811,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2664276Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "c2Vjb25kZmlyc3Q="
+ "value": "2024-01-01T00:00:00.2084665Z"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-replacement",
+ "id": "operations/azure/put-content-disposition-non-ascii",
"profile": "azure",
"lane": "core",
- "purpose": "get replacement",
+ "purpose": "Write a Content-Disposition whose filename is outside ASCII. Azure refuses a disposition byte outside ASCII with 400 InvalidMetadata, so send an RFC 6266 filename*, which any reader decodes, or refuse the value",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/multipart/replaced.bin",
- "op": "get"
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "content_disposition": "attachment; filename=\"été.txt\"",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -11035,7 +39841,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -11043,7 +39849,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/replaced.bin"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -11051,31 +39857,46 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename*=UTF-8''%C3%A9t%C3%A9.txt"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-type": "application/octet-stream",
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
"date": {
"from": "now"
},
- "etag": "\"fixture-2184b3e6c2c3\"",
+ "etag": "\"fixture-b9991ef94e3d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.5387802Z"
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
},
"body": {
"encoding": "base64",
- "data": "RklSU1Q="
+ "data": ""
}
}
}
@@ -11096,56 +39917,74 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-2184b3e6c2c3\""
+ "value": "\"fixture-b9991ef94e3d\""
}
},
{
- "at": "/value/size",
+ "at": "/value/version",
"optional": false,
"rule": {
"is": "equal",
- "value": 5
+ "value": "2024-01-01T00:00:00.2084665Z"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/content_type",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "refused"
}
},
{
- "at": "/value/version",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.5387802Z"
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/body_base64",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "RklSU1Q="
+ "value": "content_disposition"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidMetadata"
}
}
- ],
- "refusal": null
+ ]
},
{
- "id": "operations/azure/get-snapshot",
+ "id": "operations/azure/put-content-type-edge-spaces",
"profile": "azure",
"lane": "core",
- "purpose": "get snapshot",
+ "purpose": "Write a content type with spaces at either end, which HTTP drops, so the service stores it trimmed. A client may refuse it",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/snapshots/object.txt",
- "op": "get",
- "snapshot": "2024-01-01T00:00:00.7351568Z"
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "content_type": " text/plain ",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -11157,7 +39996,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -11165,7 +40004,73 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-b9991ef94e3d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -11173,37 +40078,46 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
},
{
- "at": "/query/snapshot",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7351568Z"
+ "value": "text/plain"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-md5": "+XxdKZQb+xsv2rCHSQargg==",
- "content-type": "application/octet-stream",
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
"date": {
"from": "now"
},
- "etag": "\"fixture-e3698635ab53\"",
+ "etag": "\"fixture-b9991ef94e3d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-server-encrypted": "true"
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
},
"body": {
"encoding": "base64",
- "data": "b25l"
+ "data": ""
}
}
}
@@ -11224,66 +40138,57 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-e3698635ab53\""
+ "value": "\"fixture-b9991ef94e3d\""
}
},
{
- "at": "/value/size",
+ "at": "/value/version",
"optional": false,
"rule": {
"is": "equal",
- "value": 3
+ "value": "2024-01-01T00:00:00.2084665Z"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/content_type",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "refused"
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": "+XxdKZQb+xsv2rCHSQargg=="
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/body_base64",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "b25l"
+ "value": "content_type"
}
}
- ],
- "refusal": null
+ ]
},
{
- "id": "operations/azure/get-staged-only",
+ "id": "operations/azure/put-first-version",
"profile": "azure",
"lane": "core",
- "purpose": "get staged only",
+ "purpose": "put first version",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/multipart/staged.bin",
- "op": "get"
+ "body_base64": "djE=",
+ "key": "object-tests/versions-mtydohr2/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -11295,7 +40200,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -11303,7 +40208,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
}
},
{
@@ -11311,24 +40216,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "djE="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
+ "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobNotFound"
+ "etag": "\"fixture-5769a0807b46\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2318906Z"
},
"body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -11341,42 +40260,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": "\"fixture-5769a0807b46\""
}
},
{
- "at": "/code",
+ "at": "/value/version",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "2024-01-01T00:00:00.2318906Z"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-suffix-longer-than-object",
+ "id": "operations/azure/put-if-match-current",
"profile": "azure",
"lane": "core",
- "purpose": "get suffix longer than object",
+ "purpose": "put if match current",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "suffix": 100
- }
+ "body_base64": "cmVwbGFjZWQ=",
+ "if_match": "\"fixture-b9991ef94e3d\"",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -11388,7 +40306,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -11396,7 +40314,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -11404,43 +40322,97 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "cmVwbGFjZWQ="
}
},
{
- "at": "/headers/range",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=-100"
+ "value": "\"fixture-b9991ef94e3d\""
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-md5": "kbskg1kEP+mEFuJZyb3xDQ==",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
+ "etag": "\"fixture-3e075954b24b\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.3814952Z"
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "data": ""
}
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-3e075954b24b\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.3814952Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-if-none-match-missing",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put if none match missing",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "ZnJlc2g=",
+ "if_none_match": "*",
+ "key": "object-tests/write/fresh.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -11448,7 +40420,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -11456,7 +40428,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/fresh.txt"
}
},
{
@@ -11464,40 +40436,46 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "ZnJlc2g="
}
},
{
- "at": "/headers/x-ms-range",
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=-100"
+ "value": "*"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-md5": "dgEIWMg2LXMC71+UNqpmOQ==",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
+ "etag": "\"fixture-0445b9b5a1dd\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2457093Z"
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "data": ""
}
}
}
@@ -11518,31 +40496,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": "\"fixture-0445b9b5a1dd\""
}
},
{
@@ -11550,60 +40504,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "range"
+ "value": "2024-01-01T00:00:00.2457093Z"
}
}
],
- "decline_permitted": true
+ "refusal": null
},
{
- "id": "operations/azure/get-suffix",
+ "id": "operations/azure/put-key-1024",
"profile": "azure",
"lane": "core",
- "purpose": "get suffix",
+ "purpose": "put key 1024",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "suffix": 6
- }
+ "body_base64": "MQ==",
+ "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
+ "op": "put"
},
"exchanges": [
{
@@ -11615,7 +40533,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -11623,7 +40541,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
}
},
{
@@ -11631,43 +40549,88 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MQ=="
}
},
{
- "at": "/headers/range",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=-6"
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
+ "etag": "\"fixture-cf057aba568d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.8738118Z"
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "data": ""
}
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-cf057aba568d\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.8738118Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-key-1025",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put key 1025",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -11675,7 +40638,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -11683,7 +40646,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
}
},
{
@@ -11691,40 +40654,34 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MQ=="
}
},
{
- "at": "/headers/x-ms-range",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=-6"
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-error-code": "OutOfRangeInput"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "encoding": "utf8",
+ "data": "OutOfRangeInputFixture error"
}
}
}
@@ -11737,97 +40694,81 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-16c44f0af72d\""
+ "value": 400
}
},
{
- "at": "/value/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": "OutOfRangeInput"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/content_type",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "refused"
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/version",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
+ "value": "key"
}
},
{
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
+ "value": 400
}
},
{
- "at": "/parameter",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "range"
+ "value": "OutOfRangeInput"
}
}
- ],
- "decline_permitted": true
+ ]
},
{
- "id": "operations/azure/get-unauthenticated",
+ "id": "operations/azure/put-key-under-object",
"profile": "azure",
"lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "purpose": "put key under object",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "body_base64": "MQ==",
+ "key": "object-tests/order/a/b",
+ "op": "put"
},
"exchanges": [
{
@@ -11839,7 +40780,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -11847,7 +40788,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/order/a/b"
}
},
{
@@ -11855,24 +40796,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 401,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidAuthenticationInfo"
+ "etag": "\"fixture-17ced520f182\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.2584945Z"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidAuthenticationInfoFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -11885,40 +40840,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 401
+ "value": "\"fixture-17ced520f182\""
}
},
{
- "at": "/code",
+ "at": "/value/version",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidAuthenticationInfo"
+ "value": "2024-01-01T00:00:00.2584945Z"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-unknown-snapshot",
+ "id": "operations/azure/put-lost-the-race-to-create",
"profile": "azure",
"lane": "core",
- "purpose": "get unknown snapshot",
+ "purpose": "put lost the race to create",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/snapshots/object.txt",
- "op": "get",
- "snapshot": "2024-01-01T00:00:00.4364169Z"
+ "body_base64": "YW5vdGhlciBvYmplY3Q=",
+ "if_none_match": "*",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -11930,7 +40886,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -11938,7 +40894,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -11946,32 +40902,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "YW5vdGhlciBvYmplY3Q="
}
},
{
- "at": "/query/snapshot",
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.4364169Z"
+ "value": "*"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 409,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobNotFound"
+ "x-ms-error-code": "BlobAlreadyExists"
},
"body": {
"encoding": "utf8",
- "data": "BlobNotFoundFixture error"
+ "data": "BlobAlreadyExistsFixture error"
}
}
}
@@ -11992,7 +40958,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 409
}
},
{
@@ -12000,24 +40966,28 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "BlobAlreadyExists"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-unknown-version",
+ "id": "operations/azure/put-md5-mismatch",
"profile": "azure",
"lane": "core",
- "purpose": "get unknown version",
+ "purpose": "put md5 mismatch",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/versions-mtydohr2/object.txt",
- "op": "get",
- "version": "2024-01-01T00:00:00.4364169Z"
+ "body_base64": "ZGVjbGFyZWQtYm9keQ==",
+ "checksum": {
+ "algorithm": "md5",
+ "value_base64": "eV8yArF8trw9S3cdjGyerw=="
+ },
+ "key": "object-tests/hashes/md5-mismatch.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -12029,7 +40999,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -12037,7 +41007,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
+ "value": "/fixture/object-tests/hashes/md5-mismatch.txt"
}
},
{
@@ -12045,32 +41015,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "ZGVjbGFyZWQtYm9keQ=="
}
},
{
- "at": "/query/versionid",
+ "at": "/headers/content-md5",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.4364169Z"
+ "value": "eV8yArF8trw9S3cdjGyerw=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobNotFound"
+ "x-ms-error-code": "Md5Mismatch"
},
"body": {
"encoding": "utf8",
- "data": "BlobNotFoundFixture error"
+ "data": "Md5MismatchFixture error"
}
}
}
@@ -12091,7 +41071,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 400
}
},
{
@@ -12099,23 +41079,27 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "Md5Mismatch"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-whole",
+ "id": "operations/azure/put-metadata-empty-value",
"profile": "azure",
"lane": "core",
- "purpose": "get whole",
+ "purpose": "put metadata empty value",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/empty-value.txt",
+ "metadata": {
+ "empty": ""
+ },
+ "op": "put"
},
"exchanges": [
{
@@ -12127,7 +41111,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -12135,40 +41119,54 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/metadata/empty-value.txt"
}
},
{
"at": "/body_base64",
"optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-meta-empty",
+ "optional": false,
"rule": {
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
+ "etag": "\"fixture-333d95b64818\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.9480929Z"
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "data": ""
}
}
}
@@ -12189,31 +41187,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": "\"fixture-333d95b64818\""
}
},
{
@@ -12221,31 +41195,27 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": "2024-01-01T00:00:00.9480929Z"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-xml-looking",
+ "id": "operations/azure/put-metadata-invalid-name",
"profile": "azure",
"lane": "core",
- "purpose": "get xml looking",
+ "purpose": "put metadata invalid name",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object",
- "op": "get"
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/invalid-name.txt",
+ "metadata": {
+ "not-valid": "1"
+ },
+ "op": "put"
},
"exchanges": [
{
@@ -12257,7 +41227,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -12265,7 +41235,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/fixture/object-tests/metadata/invalid-name.txt"
}
},
{
@@ -12273,33 +41243,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-meta-not-valid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ "x-ms-error-code": "InvalidMetadata"
},
"body": {
- "encoding": "base64",
- "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
+ "encoding": "utf8",
+ "data": "InvalidMetadataFixture error"
}
}
}
@@ -12312,32 +41291,81 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/body_base64",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidMetadata"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "metadata"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidMetadata"
+ }
+ }
+ ]
},
{
- "id": "operations/azure/get-noise-tolerance",
+ "id": "operations/azure/put-metadata-replaced",
"profile": "azure",
"lane": "core",
- "purpose": "get noise tolerance",
+ "purpose": "put metadata replaced",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
- "origin": "constructed",
"call": {
- "key": "object",
- "op": "get"
+ "body_base64": "Mg==",
+ "key": "object-tests/metadata/replaced.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -12349,7 +41377,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -12357,7 +41385,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/fixture/object-tests/metadata/replaced.txt"
}
},
{
@@ -12365,34 +41393,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "Mg=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-type": "application/octet-stream",
+ "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==",
"date": {
"from": "now"
},
- "etag": "\"a-different-etag\"",
+ "etag": "\"fixture-37b036d8c13f\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-fixture-unknown": "ignored",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "another-id",
"x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ "x-ms-version-id": "2024-01-01T00:00:00.7487600Z"
},
"body": {
"encoding": "base64",
- "data": "aGVsbG8="
+ "data": ""
}
}
}
@@ -12409,29 +41441,40 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": "\"fixture-37b036d8c13f\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7487600Z"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-body-cut-short",
+ "id": "operations/azure/put-metadata",
"profile": "azure",
"lane": "core",
- "purpose": "Report a body that ends before its Content-Length as an error, or resume it, but never return the short body",
+ "purpose": "put metadata",
"sources": [
- "https://www.rfc-editor.org/rfc/rfc9112#section-8",
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_client.cpp"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
- "origin": "transient",
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/object.txt",
+ "metadata": {
+ "name": "value",
+ "second": "2"
+ },
+ "op": "put"
},
"exchanges": [
{
@@ -12443,7 +41486,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -12451,7 +41494,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/metadata/object.txt"
}
},
{
@@ -12459,64 +41502,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MQ=="
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-16c44f0af72d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
- },
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
},
- "truncate_body_after": 15
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/headers/x-ms-meta-name",
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "value"
}
},
{
- "at": "/path",
+ "at": "/headers/x-ms-meta-second",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "2"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "BlockBlob"
}
}
],
@@ -12525,28 +41535,74 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
+ "etag": "\"fixture-9abbc5e374ca\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7035036Z"
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "data": ""
}
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-9abbc5e374ca\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7035036Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-metadata-identifier-name",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "An Azure metadata name must be a C# identifier, which may start with an underscore and hold digits. Send _a1; only a name that is no identifier may be refused.",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/identifier-name.txt",
+ "metadata": {
+ "_a1": "1"
+ },
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -12554,7 +41610,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -12562,7 +41618,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/metadata/identifier-name.txt"
}
},
{
@@ -12570,51 +41626,96 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MQ=="
}
},
{
- "at": "/headers/range",
+ "at": "/headers/x-ms-meta-_a1",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=15-"
+ "value": "1"
}
},
{
- "at": "/headers/if-match",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-16c44f0af72d\""
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 201,
"headers": {
- "content-range": "bytes 15-29/30",
- "content-type": "application/octet-stream",
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
+ "etag": "\"fixture-9abbc5e374ca\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7035036Z"
},
"body": {
"encoding": "base64",
- "data": "Y3QtdGVzdHMtb2JqZWN0"
+ "data": ""
}
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-9abbc5e374ca\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7035036Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-over-snapshotted",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put over snapshotted",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "dHdv",
+ "key": "object-tests/snapshots/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -12622,7 +41723,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -12630,7 +41731,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/snapshots/object.txt"
}
},
{
@@ -12638,53 +41739,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-ms-range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=15-"
+ "value": "dHdv"
}
},
{
- "at": "/headers/if-match",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-16c44f0af72d\""
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 201,
"headers": {
- "content-range": "bytes 15-29/30",
- "content-type": "application/octet-stream",
+ "content-md5": "uKn3Fdu2T9XFbneDxoIKYQ==",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
+ "etag": "\"fixture-937c89bb7b5c\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.6268993Z"
},
"body": {
"encoding": "base64",
- "data": "Y3QtdGVzdHMtb2JqZWN0"
+ "data": ""
}
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -12692,37 +41782,41 @@
"at": "/outcome",
"optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "error",
- "ok"
- ]
+ "is": "equal",
+ "value": "ok"
}
},
{
- "at": "/value/body_base64",
- "optional": true,
+ "at": "/value/etag",
+ "optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": "\"fixture-937c89bb7b5c\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.6268993Z"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-server-busy",
+ "id": "operations/azure/put-overwrite",
"profile": "azure",
"lane": "core",
- "purpose": "Report a 503 ServerBusy answer as an error, after at most 5 retries",
+ "purpose": "put overwrite",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
- "origin": "transient",
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "body_base64": "b3ZlcndyaXR0ZW4=",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -12734,7 +41828,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -12742,7 +41836,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -12750,29 +41844,87 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "b3ZlcndyaXR0ZW4="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
+ "content-md5": "UJ/0v/8wp3EDqsNAaOpGxw==",
"date": {
"from": "now"
},
- "x-ms-error-code": "ServerBusy"
+ "etag": "\"fixture-cf4724500964\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7758823Z"
},
"body": {
- "encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ "encoding": "base64",
+ "data": ""
}
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-cf4724500964\""
+ }
},
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.7758823Z"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-precondition-failed",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put precondition failed",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "YW5vdGhlciBvYmplY3Q=",
+ "if_match": "\"fixture-088e5dc109cf\"",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -12782,7 +41934,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -12790,7 +41942,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -12798,79 +41950,94 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ServerBusy"
- },
- "body": {
- "encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
- }
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
+ "value": "YW5vdGhlciBvYmplY3Q="
}
},
{
- "at": "/path",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "\"fixture-088e5dc109cf\""
}
},
{
- "at": "/body_base64",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ServerBusy"
+ "x-ms-error-code": "ConditionNotMet"
},
"body": {
"encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ "data": "ConditionNotMetFixture error"
}
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
},
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ConditionNotMet"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-precondition-failed-code-in-body",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put precondition failed, with the error code only in the XML body",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ ],
+ "origin": "constructed",
+ "call": {
+ "body_base64": "YW5vdGhlciBvYmplY3Q=",
+ "if_match": "\"fixture-088e5dc109cf\"",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -12880,7 +42047,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -12888,7 +42055,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -12896,30 +42063,89 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "YW5vdGhlciBvYmplY3Q="
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-088e5dc109cf\""
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "ServerBusy"
+ }
},
"body": {
"encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ "data": "ConditionNotMetFixture error"
}
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
},
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ConditionNotMet"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-refused",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
+ "key": "object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -12929,7 +42155,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -12937,7 +42163,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object.txt"
}
},
{
@@ -12945,30 +42171,82 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "bm90aGluZyBpcyBzdG9yZWQ="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 403,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ServerBusy"
+ "x-ms-error-code": "AuthorizationPermissionMismatch"
},
"body": {
"encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ "data": "AuthorizationPermissionMismatchFixture error"
}
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
},
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 403
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "AuthorizationPermissionMismatch"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-second-version",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put second version",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "djI=",
+ "key": "object-tests/versions-mtydohr2/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -12978,7 +42256,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -12986,7 +42264,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
}
},
{
@@ -12994,29 +42272,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "djI="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
+ "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==",
"date": {
"from": "now"
},
- "x-ms-error-code": "ServerBusy"
+ "etag": "\"fixture-4768de772705\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.3326281Z"
},
"body": {
- "encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ "encoding": "base64",
+ "data": ""
}
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -13025,40 +42316,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 503
+ "value": "\"fixture-4768de772705\""
}
},
{
- "at": "/code",
+ "at": "/value/version",
"optional": false,
"rule": {
"is": "equal",
- "value": "ServerBusy"
+ "value": "2024-01-01T00:00:00.3326281Z"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-if-unmodified-since-past",
+ "id": "operations/azure/put-unauthenticated",
"profile": "azure",
"lane": "core",
- "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -13070,7 +42361,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -13078,7 +42369,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -13086,32 +42377,34 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "bm90aGluZyBpcyBzdG9yZWQ="
}
},
{
- "at": "/headers/if-unmodified-since",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 401,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ConditionNotMet"
+ "x-ms-error-code": "InvalidAuthenticationInfo"
},
"body": {
"encoding": "utf8",
- "data": "ConditionNotMetFixture error"
+ "data": "InvalidAuthenticationInfoFixture error"
}
}
}
@@ -13132,7 +42425,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": 401
}
},
{
@@ -13140,24 +42433,28 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": "InvalidAuthenticationInfo"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-if-modified-since-future",
+ "id": "operations/azure/put-with-crc64",
"profile": "azure",
"lane": "core",
- "purpose": "Report 304 when If-Modified-Since names a future date, which Azure does not ignore",
+ "purpose": "put with crc64",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "if_modified_since": "Fri, 01 Jan 2100 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "body_base64": "ZGVjbGFyZWQtYm9keQ==",
+ "checksum": {
+ "algorithm": "azure_crc64",
+ "value_base64": "9XBvAwWoR9o="
+ },
+ "key": "object-tests/hashes/crc64.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -13169,7 +42466,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -13177,7 +42474,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/hashes/crc64.txt"
}
},
{
@@ -13185,30 +42482,46 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "ZGVjbGFyZWQtYm9keQ=="
}
},
{
- "at": "/headers/if-modified-since",
+ "at": "/headers/x-ms-content-crc64",
"optional": false,
"rule": {
"is": "equal",
- "value": "Fri, 01 Jan 2100 00:00:00 GMT"
+ "value": "9XBvAwWoR9o="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 304,
+ "status": 201,
"headers": {
+ "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
"date": {
"from": "now"
},
- "x-ms-error-code": "ConditionNotMet"
+ "etag": "\"fixture-90cfcb93036b\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.1153123Z"
},
"body": {
- "encoding": "empty"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -13221,40 +42534,44 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 304
+ "value": "\"fixture-90cfcb93036b\""
}
},
{
- "at": "/code",
+ "at": "/value/version",
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": "2024-01-01T00:00:00.1153123Z"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-if-modified-since-past",
+ "id": "operations/azure/put-with-md5",
"profile": "azure",
"lane": "core",
- "purpose": "Read an object modified since a past date",
+ "purpose": "put with md5",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "if_modified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "body_base64": "ZGVjbGFyZWQtYm9keQ==",
+ "checksum": {
+ "algorithm": "md5",
+ "value_base64": "N6YZkbg+Lyfxtskwn8iRCg=="
+ },
+ "key": "object-tests/hashes/md5.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -13266,7 +42583,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -13274,7 +42591,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/hashes/md5.txt"
}
},
{
@@ -13282,40 +42599,46 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "ZGVjbGFyZWQtYm9keQ=="
}
},
{
- "at": "/headers/if-modified-since",
+ "at": "/headers/content-md5",
"optional": false,
"rule": {
"is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
+ "etag": "\"fixture-494ad7275bf7\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-version-id": "2024-01-01T00:00:00.7803759Z"
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "data": ""
}
}
}
@@ -13336,31 +42659,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": "\"fixture-494ad7275bf7\""
}
},
{
@@ -13368,31 +42667,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": "2024-01-01T00:00:00.7803759Z"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-content-encoding-gzip",
+ "id": "operations/azure/snapshot",
"profile": "azure",
"lane": "core",
- "purpose": "Return the stored gzip bytes and Content-Encoding: gzip without decoding them",
+ "purpose": "snapshot",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "key": "object-tests/snapshots/object.txt",
+ "op": "azure.snapshot"
},
"exchanges": [
{
@@ -13404,7 +42695,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -13412,7 +42703,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/snapshots/object.txt"
}
},
{
@@ -13422,31 +42713,36 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "snapshot"
+ }
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-encoding": "gzip",
- "content-md5": "CVsDGvNMZH4SPA4MSLswrA==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
+ "etag": "\"fixture-e3698635ab53\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "false",
+ "x-ms-snapshot": "2024-01-01T00:00:00.7351568Z",
+ "x-ms-version-id": "2024-01-01T00:00:00.8746441Z"
},
"body": {
"encoding": "base64",
- "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ "data": ""
}
}
}
@@ -13463,75 +42759,29 @@
}
},
{
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 42
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "CVsDGvNMZH4SPA4MSLswrA=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
- }
- },
- {
- "at": "/value/content_encoding",
+ "at": "/value/snapshot",
"optional": false,
"rule": {
"is": "equal",
- "value": "gzip"
+ "value": "2024-01-01T00:00:00.7351568Z"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-content-properties",
+ "id": "operations/azure/stage-empty",
"profile": "azure",
"lane": "core",
- "purpose": "Return the stored content properties from a GET",
+ "purpose": "stage empty",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "block_id_base64": "MDAwMDAz",
+ "body_base64": "",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -13543,7 +42793,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -13551,7 +42801,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/multipart/staged.bin"
}
},
{
@@ -13561,33 +42811,40 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAz"
+ }
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
- "cache-control": "max-age=3600",
- "content-disposition": "attachment; filename=\"report.txt\"",
- "content-language": "nl-NL",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "text/plain; charset=utf-8",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-error-code": "InvalidHeaderValue"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "encoding": "utf8",
+ "data": "InvalidHeaderValueFixture error"
}
}
}
@@ -13600,95 +42857,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "text/plain; charset=utf-8"
- }
- },
- {
- "at": "/value/content_language",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "nl-NL"
+ "value": "error"
}
},
{
- "at": "/value/content_disposition",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "attachment; filename=\"report.txt\""
+ "value": 400
}
},
{
- "at": "/value/cache_control",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "max-age=3600"
+ "value": "InvalidHeaderValue"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-with-staged-blocks",
+ "id": "operations/azure/stage-escaped-id",
"profile": "azure",
"lane": "core",
- "purpose": "get with staged blocks",
+ "purpose": "stage escaped id",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/multipart/pending.bin",
- "op": "get"
+ "block_id_base64": "+/8=",
+ "body_base64": "b25l",
+ "key": "object-tests/multipart/escaped.bin",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -13700,7 +42903,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -13708,7 +42911,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/pending.bin"
+ "value": "/fixture/object-tests/multipart/escaped.bin"
}
},
{
@@ -13716,31 +42919,43 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "b25l"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "+/8="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-9c5ca12bcfc9\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.6314295Z"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": "Zmlyc3RzZWNvbmQ="
+ "data": ""
}
}
}
@@ -13758,58 +42973,31 @@
},
{
"at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-9c5ca12bcfc9\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 11
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.6314295Z"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "Zmlyc3RzZWNvbmQ="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-committed-declaring-md5",
+ "id": "operations/azure/stage-id-too-long",
"profile": "azure",
"lane": "core",
- "purpose": "head committed declaring md5",
+ "purpose": "stage id too long",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/hashes/committed.bin",
- "op": "head"
+ "block_id_base64": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg=",
+ "body_base64": "dGhpcmQ=",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -13821,7 +43009,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -13829,7 +43017,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/hashes/committed.bin"
+ "value": "/fixture/object-tests/multipart/staged.bin"
}
},
{
@@ -13837,33 +43025,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "dGhpcmQ="
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
- "content-length": "13",
- "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-39ee25525bc6\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2802899Z"
+ "x-ms-error-code": "OutOfRangeInput"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "OutOfRangeInputBlock ID exceeds 64 decoded bytes."
}
}
}
@@ -13876,63 +43073,82 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-39ee25525bc6\""
+ "value": 400
}
},
{
- "at": "/value/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 13
+ "value": "OutOfRangeInput"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/content_type",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "refused"
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/version",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2802899Z"
+ "value": "block_id_base64"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "OutOfRangeInput"
}
}
- ],
- "refusal": null
+ ]
},
{
- "id": "operations/azure/head-committed",
+ "id": "operations/azure/stage-mixed-length-id",
"profile": "azure",
"lane": "core",
- "purpose": "head committed",
+ "purpose": "stage mixed length id",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/multipart/committed.bin",
- "op": "head"
+ "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy",
+ "body_base64": "dGhpcmQ=",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -13944,7 +43160,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -13952,7 +43168,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/committed.bin"
+ "value": "/fixture/object-tests/multipart/staged.bin"
}
},
{
@@ -13960,32 +43176,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "dGhpcmQ="
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
- "content-length": "11",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-be8efdb79010\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7848460Z"
+ "x-ms-error-code": "InvalidBlobOrBlock"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "InvalidBlobOrBlockFixture error"
}
}
}
@@ -13998,55 +43224,44 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-be8efdb79010\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 11
+ "value": "error"
}
},
{
- "at": "/value/content_type",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": 400
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7848460Z"
+ "value": "InvalidBlobOrBlock"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-metadata",
+ "id": "operations/azure/stage-mixed-length-id-code-in-body",
"profile": "azure",
"lane": "core",
- "purpose": "head metadata",
+ "purpose": "stage mixed length id, with the error code only in the XML body",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
],
+ "origin": "constructed",
"call": {
- "key": "object-tests/metadata/object.txt",
- "op": "head"
+ "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy",
+ "body_base64": "dGhpcmQ=",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -14058,7 +43273,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -14066,7 +43281,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/object.txt"
+ "value": "/fixture/object-tests/multipart/staged.bin"
}
},
{
@@ -14074,35 +43289,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "dGhpcmQ="
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
- "content-length": "1",
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-9abbc5e374ca\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-meta-name": "value",
- "x-ms-meta-second": "2",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7035036Z"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "InvalidBlobOrBlockFixture error"
}
}
}
@@ -14115,74 +43336,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-9abbc5e374ca\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "error"
}
},
{
- "at": "/value/version",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7035036Z"
+ "value": 400
}
},
{
- "at": "/value/metadata",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "name": "value",
- "second": "2"
- }
+ "value": "InvalidBlobOrBlock"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-missing",
+ "id": "operations/azure/stage-unauthenticated",
"profile": "azure",
"lane": "core",
- "purpose": "head missing",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/read/absent.txt",
- "op": "head"
+ "block_id_base64": "MDAwMDAx",
+ "body_base64": "Zmlyc3Q=",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -14194,7 +43382,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -14202,7 +43390,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/absent.txt"
+ "value": "/fixture/object-tests/multipart/staged.bin"
}
},
{
@@ -14210,23 +43398,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "Zmlyc3Q="
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAx"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 401,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobNotFound"
+ "x-ms-error-code": "InvalidAuthenticationInfo"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "InvalidAuthenticationInfoFixture error"
}
}
}
@@ -14247,7 +43454,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 401
}
},
{
@@ -14255,24 +43462,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "InvalidAuthenticationInfo"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-previous-version",
+ "id": "operations/azure/stage",
"profile": "azure",
"lane": "core",
- "purpose": "head previous version",
+ "purpose": "stage",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/versions-mtydohr2/object.txt",
- "op": "head",
- "version": "2024-01-01T00:00:00.2318906Z"
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -14284,7 +43492,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -14292,7 +43500,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
+ "value": "/fixture/object-tests/multipart/staged.bin"
}
},
{
@@ -14300,35 +43508,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
}
},
{
- "at": "/query/versionid",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2318906Z"
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-length": "2",
- "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-5769a0807b46\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2318906Z"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -14350,59 +43562,31 @@
},
{
"at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-5769a0807b46\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ZlTHNMyrj0QP8IJetEPcfw=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.2318906Z"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-snapshot",
+ "id": "operations/azure/stage-id-64-bytes",
"profile": "azure",
"lane": "core",
- "purpose": "head snapshot",
+ "purpose": "A block ID decodes to at most 64 bytes, and Azure stages a block whose ID decodes to exactly 64. Send it; only a longer ID may be refused.",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/snapshots/object.txt",
- "op": "head",
- "snapshot": "2024-01-01T00:00:00.7351568Z"
+ "block_id_base64": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -14414,7 +43598,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -14422,7 +43606,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
+ "value": "/fixture/object-tests/multipart/staged.bin"
}
},
{
@@ -14430,34 +43614,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
}
},
{
- "at": "/query/snapshot",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7351568Z"
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA=="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-length": "3",
- "content-md5": "+XxdKZQb+xsv2rCHSQargg==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-e3698635ab53\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-server-encrypted": "true"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -14479,38 +43668,6 @@
},
{
"at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-e3698635ab53\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 3
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "+XxdKZQb+xsv2rCHSQargg=="
- }
- },
- {
- "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -14524,16 +43681,18 @@
"refusal": null
},
{
- "id": "operations/azure/head-written-with-crc64",
+ "id": "operations/azure/stage-key-question",
"profile": "azure",
"lane": "core",
- "purpose": "head written with crc64",
+ "purpose": "stage, with the key \"question?mark.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/hashes/crc64.txt",
- "op": "head"
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -14545,7 +43704,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -14553,7 +43712,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/hashes/crc64.txt"
+ "value": "/fixture/object-tests/keys/question?mark.txt"
}
},
{
@@ -14561,29 +43720,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-length": "13",
- "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-90cfcb93036b\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.1153123Z"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -14605,58 +43774,31 @@
},
{
"at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-90cfcb93036b\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 13
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "N6YZkbg+Lyfxtskwn8iRCg=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.1153123Z"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-written-with-md5",
+ "id": "operations/azure/stage-key-hash",
"profile": "azure",
"lane": "core",
- "purpose": "head written with md5",
+ "purpose": "stage, with the key \"hash#tag.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/hashes/md5.txt",
- "op": "head"
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -14668,7 +43810,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -14676,7 +43818,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/hashes/md5.txt"
+ "value": "/fixture/object-tests/keys/hash#tag.txt"
}
},
{
@@ -14684,29 +43826,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-length": "13",
- "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-494ad7275bf7\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7803759Z"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -14728,58 +43880,31 @@
},
{
"at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-494ad7275bf7\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 13
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "N6YZkbg+Lyfxtskwn8iRCg=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7803759Z"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head",
+ "id": "operations/azure/stage-key-percent",
"profile": "azure",
"lane": "core",
- "purpose": "head",
+ "purpose": "stage, with the key \"percent%20.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "head"
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -14791,7 +43916,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -14799,7 +43924,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/keys/percent%20.txt"
}
},
{
@@ -14807,29 +43932,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -14851,58 +43986,31 @@
},
{
"at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-key-question",
+ "id": "operations/azure/stage-key-plus",
"profile": "azure",
"lane": "core",
- "purpose": "head, with the key \"question?mark.txt\"",
+ "purpose": "stage, with the key \"plus+plus.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/question?mark.txt",
- "op": "head"
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -14914,7 +44022,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -14922,7 +44030,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/question?mark.txt"
+ "value": "/fixture/object-tests/keys/plus+plus.txt"
}
},
{
@@ -14930,29 +44038,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -14974,58 +44092,31 @@
},
{
"at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-key-hash",
+ "id": "operations/azure/stage-key-space",
"profile": "azure",
"lane": "core",
- "purpose": "head, with the key \"hash#tag.txt\"",
+ "purpose": "stage, with the key \"space name.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/hash#tag.txt",
- "op": "head"
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/space name.txt",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -15037,7 +44128,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -15045,7 +44136,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/hash#tag.txt"
+ "value": "/fixture/object-tests/keys/space name.txt"
}
},
{
@@ -15053,29 +44144,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -15097,58 +44198,31 @@
},
{
"at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-key-percent",
+ "id": "operations/azure/stage-key-non-ascii",
"profile": "azure",
"lane": "core",
- "purpose": "head, with the key \"percent%20.txt\"",
+ "purpose": "stage, with the key \"café/雪.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/percent%20.txt",
- "op": "head"
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -15160,7 +44234,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -15168,7 +44242,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/percent%20.txt"
+ "value": "/fixture/object-tests/keys/café/雪.txt"
}
},
{
@@ -15176,29 +44250,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -15220,58 +44304,31 @@
},
{
"at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-key-plus",
+ "id": "operations/azure/stage-key-double-slash",
"profile": "azure",
"lane": "core",
- "purpose": "head, with the key \"plus+plus.txt\"",
+ "purpose": "stage, with the key \"double//slash.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/plus+plus.txt",
- "op": "head"
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -15283,7 +44340,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -15291,7 +44348,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/plus+plus.txt"
+ "value": "/fixture/object-tests/keys/double//slash.txt"
}
},
{
@@ -15299,29 +44356,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -15343,58 +44410,31 @@
},
{
"at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-key-space",
+ "id": "operations/azure/stage-key-trailing-slash",
"profile": "azure",
"lane": "core",
- "purpose": "head, with the key \"space name.txt\"",
+ "purpose": "stage, with the key \"trailing-slash/\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/space name.txt",
- "op": "head"
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "azure.stage_block"
},
"exchanges": [
{
@@ -15406,7 +44446,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -15414,7 +44454,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/space name.txt"
+ "value": "/fixture/object-tests/keys/trailing-slash/"
}
},
{
@@ -15422,29 +44462,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -15466,58 +44516,35 @@
},
{
"at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-key-non-ascii",
+ "id": "operations/azure/stage-from-url",
"profile": "azure",
"lane": "core",
- "purpose": "head, with the key \"café/雪.txt\"",
+ "purpose": "Stage a block from bytes 0 to 2 at a URL with Put Block From URL, the range named in x-ms-source-range with an inclusive end, as bytes=0-2",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-block-from-url"
],
"call": {
- "key": "object-tests/keys/café/雪.txt",
- "op": "head"
+ "block_id_base64": "MDAwMDAy",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block_from_url",
+ "source_key": "object-tests/copy/source.txt",
+ "source_range": {
+ "end": 3,
+ "start": 0
+ }
},
"exchanges": [
{
@@ -15529,7 +44556,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -15537,7 +44564,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/café/雪.txt"
+ "value": "/fixture/object-tests/multipart/staged.bin"
}
},
{
@@ -15547,27 +44574,54 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-ms-source-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=0-2"
+ }
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type",
+ "x-ms-copy-source-authorization"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -15589,58 +44643,30 @@
},
{
"at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
- }
- },
- {
- "at": "/value/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
- }
- },
- {
- "at": "/value/version",
- "optional": false,
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-key-double-slash",
+ "id": "operations/azure/staged-absent",
"profile": "azure",
"lane": "core",
- "purpose": "head, with the key \"double//slash.txt\"",
+ "purpose": "staged absent",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/double//slash.txt",
- "op": "head"
+ "key": "object-tests/multipart/absent.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -15652,7 +44678,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "GET"
}
},
{
@@ -15660,7 +44686,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/double//slash.txt"
+ "value": "/fixture/object-tests/multipart/absent.bin"
}
},
{
@@ -15670,31 +44696,38 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blocklist"
+ }
+ },
+ {
+ "at": "/query/blocklisttype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "all"
+ }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
}
}
}
@@ -15707,63 +44740,43 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
+ "value": "error"
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": 404
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
+ "value": "BlobNotFound"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-key-trailing-slash",
+ "id": "operations/azure/staged-absent-code-in-body",
"profile": "azure",
"lane": "core",
- "purpose": "head, with the key \"trailing-slash/\"",
+ "purpose": "staged absent, with the error code only in the XML body",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
],
+ "origin": "constructed",
"call": {
- "key": "object-tests/keys/trailing-slash/",
- "op": "head"
+ "key": "object-tests/multipart/absent.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -15775,7 +44788,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "GET"
}
},
{
@@ -15783,7 +44796,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/trailing-slash/"
+ "value": "/fixture/object-tests/multipart/absent.bin"
}
},
{
@@ -15793,31 +44806,37 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blocklist"
+ }
+ },
+ {
+ "at": "/query/blocklisttype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "all"
+ }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-16c44f0af72d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
}
}
}
@@ -15830,63 +44849,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
+ "value": "error"
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": 404
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
+ "value": "BlobNotFound"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-content-properties",
+ "id": "operations/azure/staged-after-commit",
"profile": "azure",
"lane": "core",
- "purpose": "Return the stored content properties from a HEAD",
+ "purpose": "staged after commit",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "head"
+ "key": "object-tests/multipart/committed.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -15898,7 +44894,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "GET"
}
},
{
@@ -15906,7 +44902,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/multipart/committed.bin"
}
},
{
@@ -15916,6 +44912,22 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blocklist"
+ }
+ },
+ {
+ "at": "/query/blocklisttype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "all"
+ }
}
],
"allow_headers": [],
@@ -15923,28 +44935,19 @@
"response": {
"status": 200,
"headers": {
- "cache-control": "max-age=3600",
- "content-disposition": "attachment; filename=\"report.txt\"",
- "content-language": "nl-NL",
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "text/plain; charset=utf-8",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-16c44f0af72d\"",
+ "etag": "\"fixture-be8efdb79010\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7556278Z"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "MDAwMDAx5MDAwMDAy6"
+ },
+ "framing": "chunked"
}
}
]
@@ -15960,84 +44963,68 @@
}
},
{
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-16c44f0af72d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_md5_base64",
+ "at": "/value/committed/0/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": "MDAwMDAx"
}
},
{
- "at": "/value/version",
+ "at": "/value/committed/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7556278Z"
+ "value": 5
}
},
{
- "at": "/value/content_type",
+ "at": "/value/committed/1/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "text/plain; charset=utf-8"
+ "value": "MDAwMDAy"
}
},
{
- "at": "/value/content_language",
+ "at": "/value/committed/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "nl-NL"
+ "value": 6
}
},
{
- "at": "/value/content_disposition",
+ "at": "/value/committed",
"optional": false,
"rule": {
- "is": "equal",
- "value": "attachment; filename=\"report.txt\""
+ "is": "array_length",
+ "value": 2
}
},
{
- "at": "/value/cache_control",
+ "at": "/value/uncommitted",
"optional": false,
"rule": {
- "is": "equal",
- "value": "max-age=3600"
+ "is": "array_length",
+ "value": 0
}
}
],
"refusal": null
},
{
- "id": "operations/azure/head-if-unmodified-since-past",
+ "id": "operations/azure/staged-after-replacement",
"profile": "azure",
"lane": "core",
- "purpose": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since",
+ "purpose": "staged after replacement",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "head"
+ "key": "object-tests/multipart/replaced.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -16049,7 +45036,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "GET"
}
},
{
@@ -16057,7 +45044,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/multipart/replaced.bin"
}
},
{
@@ -16069,27 +45056,40 @@
}
},
{
- "at": "/headers/if-unmodified-since",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ "value": "blocklist"
+ }
+ },
+ {
+ "at": "/query/blocklisttype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "all"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ConditionNotMet"
+ "etag": "\"fixture-2184b3e6c2c3\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "MDAwMDAx5"
+ },
+ "framing": "chunked"
}
}
]
@@ -16101,39 +45101,56 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/committed/0/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": "MDAwMDAx"
}
},
{
- "at": "/code",
+ "at": "/value/committed/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": 5
+ }
+ },
+ {
+ "at": "/value/committed",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/uncommitted",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-after-delete-with-versions",
+ "id": "operations/azure/staged-after-whole-write",
"profile": "azure",
"lane": "core",
- "purpose": "list after delete with versions",
+ "purpose": "staged after whole write",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/versions-mtydohr2/deleted.txt"
+ "key": "object-tests/multipart/whole.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -16153,7 +45170,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/whole.bin"
}
},
{
@@ -16164,28 +45181,20 @@
"value": ""
}
},
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
{
"at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "blocklist"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/blocklisttype",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/versions-mtydohr2/deleted.txt"
+ "value": "all"
}
}
],
@@ -16198,12 +45207,13 @@
"date": {
"from": "now"
},
+ "etag": "\"fixture-f439b54167cb\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/versions-mtydohr2/deleted.txt"
+ "data": ""
},
"framing": "chunked"
}
@@ -16221,7 +45231,7 @@
}
},
{
- "at": "/value/entries",
+ "at": "/value/committed",
"optional": false,
"rule": {
"is": "array_length",
@@ -16229,36 +45239,28 @@
}
},
{
- "at": "/value/prefixes",
+ "at": "/value/uncommitted",
"optional": false,
"rule": {
"is": "array_length",
"value": 0
}
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/list-bad-marker",
+ "id": "operations/azure/staged-committed-empty",
"profile": "azure",
"lane": "core",
- "purpose": "list bad marker",
+ "purpose": "staged committed empty",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "continuation_token": "fixture-marker+/1d52c72a655f=",
- "op": "list_page",
- "prefix": "object-tests/board/"
+ "key": "object-tests/multipart/staged.bin",
+ "kind": "committed",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -16278,7 +45280,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/staged.bin"
}
},
{
@@ -16289,54 +45291,40 @@
"value": ""
}
},
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
{
"at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "value": "blocklist"
}
},
{
- "at": "/query/marker",
+ "at": "/query/blocklisttype",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-marker+/1d52c72a655f="
+ "value": "committed"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidQueryParameterValue"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "InvalidQueryParameterValueFixture error"
- }
+ "data": ""
+ },
+ "framing": "chunked"
}
}
]
@@ -16348,43 +45336,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/committed",
"optional": false,
"rule": {
- "is": "equal",
- "value": 400
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/code",
+ "at": "/value/uncommitted",
"optional": false,
"rule": {
- "is": "equal",
- "value": "InvalidQueryParameterValue"
+ "is": "array_length",
+ "value": 0
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-bad-marker-code-in-body",
+ "id": "operations/azure/staged-committed-nothing",
"profile": "azure",
"lane": "core",
- "purpose": "list bad marker, with the error code only in the XML body",
+ "purpose": "staged committed nothing",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
- "origin": "constructed",
"call": {
- "continuation_token": "fixture-marker+/1d52c72a655f=",
- "op": "list_page",
- "prefix": "object-tests/board/"
+ "key": "object-tests/multipart/empty.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -16404,7 +45389,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/empty.bin"
}
},
{
@@ -16415,53 +45400,41 @@
"value": ""
}
},
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
{
"at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "value": "blocklist"
}
},
{
- "at": "/query/marker",
+ "at": "/query/blocklisttype",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-marker+/1d52c72a655f="
+ "value": "all"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-265df060a55b\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "InvalidQueryParameterValueFixture error"
- }
+ "data": ""
+ },
+ "framing": "chunked"
}
}
]
@@ -16473,39 +45446,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/committed",
"optional": false,
"rule": {
- "is": "equal",
- "value": 400
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/code",
+ "at": "/value/uncommitted",
"optional": false,
"rule": {
- "is": "equal",
- "value": "InvalidQueryParameterValue"
+ "is": "array_length",
+ "value": 0
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-container-missing",
+ "id": "operations/azure/staged-escaped-id",
"profile": "azure",
"lane": "core",
- "purpose": "list container missing",
+ "purpose": "staged escaped id",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list_page",
- "prefix": ""
+ "key": "object-tests/multipart/escaped.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -16525,7 +45499,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/escaped.bin"
}
},
{
@@ -16536,46 +45510,40 @@
"value": ""
}
},
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
{
"at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "blocklist"
}
},
{
- "at": "/query/prefix",
- "optional": true,
+ "at": "/query/blocklisttype",
+ "optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "all"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ContainerNotFound"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
- }
+ "data": "+/8=3"
+ },
+ "framing": "chunked"
}
}
]
@@ -16587,40 +45555,56 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/committed",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/uncommitted/0/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": "+/8="
}
},
{
- "at": "/code",
+ "at": "/value/uncommitted/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ContainerNotFound"
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/uncommitted",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-delimited",
+ "id": "operations/azure/staged-replacement",
"profile": "azure",
"lane": "core",
- "purpose": "list delimited",
+ "purpose": "staged replacement",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/board/"
+ "key": "object-tests/multipart/pending.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -16640,7 +45624,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/pending.bin"
}
},
{
@@ -16651,36 +45635,20 @@
"value": ""
}
},
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
{
"at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "value": "blocklist"
}
},
{
- "at": "/query/delimiter",
+ "at": "/query/blocklisttype",
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "all"
}
}
],
@@ -16693,12 +45661,13 @@
"date": {
"from": "now"
},
+ "etag": "\"fixture-9c5ca12bcfc9\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/board//object-tests/board/a.txt2024-01-01T00:00:00.9908400ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-704c5ddfc8cb8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nested/object-tests/board/z.txt2024-01-01T00:00:00.3834597ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b905747bf74f2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
+ "data": "MDAwMDAx5MDAwMDAy6MDAwMDAx5"
},
"framing": "chunked"
}
@@ -16716,170 +45685,225 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/a.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
+ "at": "/value/committed/0/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 8
+ "value": "MDAwMDAx"
}
},
{
- "at": "/value/entries/0/etag",
+ "at": "/value/committed/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-704c5ddfc8cb"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": 5
}
},
{
- "at": "/value/entries/0/version",
+ "at": "/value/committed/1/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.9908400Z"
+ "value": "MDAwMDAy"
}
},
{
- "at": "/value/entries/0/is_current_version",
+ "at": "/value/committed/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": 6
}
},
{
- "at": "/value/entries/0/content_md5_base64",
+ "at": "/value/committed",
"optional": false,
"rule": {
- "is": "equal",
- "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
+ "is": "array_length",
+ "value": 2
}
},
{
- "at": "/value/entries/1/key",
+ "at": "/value/uncommitted/0/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/z.txt"
+ "value": "MDAwMDAx"
}
},
{
- "at": "/value/entries/1/size",
+ "at": "/value/uncommitted/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 2
+ "value": 5
}
},
{
- "at": "/value/entries/1/etag",
+ "at": "/value/uncommitted",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-b905747bf74f"
+ "is": "array_length",
+ "value": 1
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/staged-uncommitted-only",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "staged uncommitted only",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/multipart/staged.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
+ },
+ "exchanges": [
{
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/staged.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blocklist"
+ }
+ },
+ {
+ "at": "/query/blocklisttype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "all"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "MDAwMDAx5MDAwMDAy6"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/1/version",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.3834597Z"
+ "value": "ok"
}
},
{
- "at": "/value/entries/1/is_current_version",
+ "at": "/value/committed",
"optional": false,
"rule": {
- "is": "equal",
- "value": true
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/value/entries/1/content_md5_base64",
+ "at": "/value/uncommitted/0/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "Je0by0I7C3IA9IX8X/ccjg=="
+ "value": "MDAwMDAx"
}
},
{
- "at": "/value/entries",
+ "at": "/value/uncommitted/0/size",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 2
+ "is": "equal",
+ "value": 5
}
},
{
- "at": "/value/prefixes/0",
+ "at": "/value/uncommitted/1/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/nested/"
+ "value": "MDAwMDAy"
}
},
{
- "at": "/value/prefixes",
+ "at": "/value/uncommitted/1/size",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 1
+ "is": "equal",
+ "value": 6
}
},
{
- "at": "/value/continuation_token",
+ "at": "/value/uncommitted",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "array_length",
+ "value": 2
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-other-delimiter",
+ "id": "operations/azure/staged-uncommitted",
"profile": "azure",
"lane": "core",
- "purpose": "Send the delimiter the caller names. A flat account groups blob names at any delimiter, not only /; here a- groups a-1.txt and a-2.txt",
+ "purpose": "staged uncommitted",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "delimiter": "-",
- "op": "list_page",
- "prefix": "object-tests/dashes/"
+ "key": "object-tests/multipart/staged.bin",
+ "kind": "uncommitted",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -16899,7 +45923,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/staged.bin"
}
},
{
@@ -16910,36 +45934,20 @@
"value": ""
}
},
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
{
"at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/dashes/"
+ "value": "blocklist"
}
},
{
- "at": "/query/delimiter",
+ "at": "/query/blocklisttype",
"optional": false,
"rule": {
"is": "equal",
- "value": "-"
+ "value": "uncommitted"
}
}
],
@@ -16957,7 +45965,7 @@
},
"body": {
"encoding": "utf8",
- "data": "object-tests/dashes/-object-tests/dashes/a-object-tests/dashes/b.txt2024-01-01T00:00:00.9908400ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-704c5ddfc8cb1application/octet-streamkutf/uauL+w61xx3dTFXjw==BlockBlobHottrueunlockedavailabletrue"
+ "data": "MDAwMDAx5MDAwMDAy6"
},
"framing": "chunked"
}
@@ -16975,83 +45983,68 @@
}
},
{
- "at": "/value/entries/0/key",
+ "at": "/value/committed",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/dashes/b.txt"
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/value/entries/0/size",
+ "at": "/value/uncommitted/0/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "MDAwMDAx"
}
},
{
- "at": "/value/entries/0/etag",
+ "at": "/value/uncommitted/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-704c5ddfc8cb"
+ "value": 5
}
},
{
- "at": "/value/entries/0/version",
+ "at": "/value/uncommitted/1/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.9908400Z"
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
+ "value": "MDAwMDAy"
}
},
{
- "at": "/value/prefixes/0",
+ "at": "/value/uncommitted/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/dashes/a-"
+ "value": 6
}
},
{
- "at": "/value/prefixes",
+ "at": "/value/uncommitted",
"optional": false,
"rule": {
"is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": 2
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-empty",
- "profile": "azure",
+ "id": "operations/azure-hns/commit-container-missing",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list empty",
+ "purpose": "commit container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/nothing/"
+ "blocks": [],
+ "key": "object.bin",
+ "op": "azure.commit_blocks"
},
"exchanges": [
{
@@ -17063,7 +46056,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -17071,23 +46064,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object.bin"
}
},
{
- "at": "/query/restype",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "xml",
+ "value": ""
}
},
{
@@ -17095,35 +46080,27 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/nothing/"
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-error-code": "ContainerNotFound"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/nothing/"
- },
- "framing": "chunked"
+ "data": "ContainerNotFoundFixture error"
+ }
}
}
]
@@ -17135,47 +46112,54 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/entries",
+ "at": "/status",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": 404
}
},
{
- "at": "/value/prefixes",
+ "at": "/code",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "ContainerNotFound"
}
},
{
- "at": "/value/continuation_token",
+ "at": "/kind",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "container_not_found"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-all-empty",
- "profile": "azure",
+ "id": "operations/azure-hns/commit-declaring-md5",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list empty",
+ "purpose": "commit declaring md5",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list",
- "prefix": ""
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ }
+ ],
+ "content_md5_base64": "N6YZkbg+Lyfxtskwn8iRCg==",
+ "key": "object-tests/hashes/committed.bin",
+ "op": "azure.commit_blocks"
},
"exchanges": [
{
@@ -17187,7 +46171,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -17195,23 +46179,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/hashes/committed.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "MDAwMDAx"
}
},
{
- "at": "/query/restype",
+ "at": "/headers/x-ms-blob-content-md5",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "N6YZkbg+Lyfxtskwn8iRCg=="
}
},
{
@@ -17219,43 +46203,29 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
+ "etag": "\"fixture-9a581bc70e20\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PC9CbG9icz48TmV4dE1hcmtlcj48L05leHRNYXJrZXI+PC9FbnVtZXJhdGlvblJlc3VsdHM+"
- },
- "framing": "chunked"
+ "data": ""
+ }
}
}
]
@@ -17271,27 +46241,48 @@
}
},
{
- "at": "/value/keys",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": []
+ "value": "\"fixture-9a581bc70e20\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-encoded-names",
- "profile": "azure",
+ "id": "operations/azure-hns/commit-duplicate-id",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list encoded names",
+ "purpose": "commit duplicate id",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/names/"
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ }
+ ],
+ "key": "object-tests/multipart/duplicate.bin",
+ "op": "azure.commit_blocks"
},
"exchanges": [
{
@@ -17303,7 +46294,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -17311,23 +46302,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/multipart/duplicate.bin"
}
},
{
- "at": "/query/restype",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDAx"
}
},
{
@@ -17335,35 +46318,29 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/"
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-a8581b642c5f\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "object-tests/names/object-tests%2Fnames%2F100%25-%EF%BF%BE-name.txt2024-01-01T00:00:00.6773769ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b0016e7eea411application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/a&b.txt2024-01-01T00:00:00.9293679ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e0cf2e36cfe61application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/back/slash.txt2024-01-01T00:00:00.8649025ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-fb1ea388bc8f1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/café.txt2024-01-01T00:00:00.0714249ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4dfcbd136b001application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/hash#tag.txt2024-01-01T00:00:00.9185620ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-a7996d03132f1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/percent%20.txt2024-01-01T00:00:00.5807236ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-5e82da751e9c1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/plus+plus.txt2024-01-01T00:00:00.8000075ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7dc03e94613e1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/q?mark.txt2024-01-01T00:00:00.3314072ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-91f727e794361application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -17379,267 +46356,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/100%--name.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-b0016e7eea41"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.6773769Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/a&b.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-e0cf2e36cfe6"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.9293679Z"
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/back/slash.txt"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-fb1ea388bc8f"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.8649025Z"
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/2/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/café.txt"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-4dfcbd136b00"
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.0714249Z"
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/3/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/4/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/hash#tag.txt"
- }
- },
- {
- "at": "/value/entries/4/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/4/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-a7996d03132f"
+ "value": "\"fixture-a8581b642c5f\""
}
},
{
- "at": "/value/entries/4/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -17648,57 +46373,109 @@
""
]
}
- },
- {
- "at": "/value/entries/4/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.9185620Z"
- }
- },
- {
- "at": "/value/entries/4/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/4/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/commit-escaped-id",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "commit escaped id",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "blocks": [
+ {
+ "id_base64": "+/8=",
+ "kind": "latest"
}
- },
+ ],
+ "key": "object-tests/multipart/escaped.bin",
+ "op": "azure.commit_blocks"
+ },
+ "exchanges": [
{
- "at": "/value/entries/5/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/percent%20.txt"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/escaped.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "+/8="
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blocklist"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-77b5e2317b8a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/5/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/entries/5/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-5e82da751e9c"
+ "value": "\"fixture-77b5e2317b8a\""
}
},
{
- "at": "/value/entries/5/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -17707,187 +46484,248 @@
""
]
}
- },
- {
- "at": "/value/entries/5/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.5807236Z"
- }
- },
- {
- "at": "/value/entries/5/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/5/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/6/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/plus+plus.txt"
- }
- },
- {
- "at": "/value/entries/6/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/6/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-7dc03e94613e"
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/commit-lost-the-race-to-create",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "commit lost the race to create",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
}
- },
+ ],
+ "if_none_match": "*",
+ "key": "object-tests/multipart/pending.bin",
+ "op": "azure.commit_blocks"
+ },
+ "exchanges": [
{
- "at": "/value/entries/6/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/pending.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "MDAwMDAx"
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "*"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blocklist"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "BlobAlreadyExists"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobAlreadyExistsFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/6/version",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.8000075Z"
+ "value": "error"
}
},
{
- "at": "/value/entries/6/is_current_version",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": 409
}
},
{
- "at": "/value/entries/6/content_md5_base64",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "BlobAlreadyExists"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/commit-nothing",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "commit nothing",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "blocks": [],
+ "key": "object-tests/multipart/empty.bin",
+ "op": "azure.commit_blocks"
+ },
+ "exchanges": [
{
- "at": "/value/entries/7/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/q?mark.txt"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/empty.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blocklist"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-072bed78cc6a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/7/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/entries/7/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-91f727e79436"
+ "value": "\"fixture-072bed78cc6a\""
}
},
{
- "at": "/value/entries/7/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/7/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.3314072Z"
- }
- },
- {
- "at": "/value/entries/7/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/7/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 8
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-xml-escaped",
- "profile": "azure",
+ "id": "operations/azure-hns/commit-over-whole-object",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list xml escaped",
+ "purpose": "commit over whole object",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list",
- "prefix": ""
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ }
+ ],
+ "key": "object-tests/multipart/over.bin",
+ "op": "azure.commit_blocks"
},
"exchanges": [
{
@@ -17899,7 +46737,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -17907,23 +46745,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/multipart/over.bin"
}
},
{
- "at": "/query/restype",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "xml",
+ "value": "MDAwMDAx"
}
},
{
@@ -17931,43 +46761,29 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
+ "etag": "\"fixture-7dc650e58291\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+YSZhbXA7YjwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PEJsb2I+PE5hbWU+YyZsdDtkPC9OYW1lPjxQcm9wZXJ0aWVzPjxMYXN0LU1vZGlmaWVkPk1vbiwgMDEgSmFuIDIwMjQgMDA6MDA6MDAgR01UPC9MYXN0LU1vZGlmaWVkPjxFdGFnPiJmaXh0dXJlIjwvRXRhZz48Q29udGVudC1MZW5ndGg+NTwvQ29udGVudC1MZW5ndGg+PEJsb2JUeXBlPkJsb2NrQmxvYjwvQmxvYlR5cGU+PC9Qcm9wZXJ0aWVzPjwvQmxvYj48L0Jsb2JzPjxOZXh0TWFya2VyPjwvTmV4dE1hcmtlcj48L0VudW1lcmF0aW9uUmVzdWx0cz4="
- },
- "framing": "chunked"
+ "data": ""
+ }
}
}
]
@@ -17983,13 +46799,21 @@
}
},
{
- "at": "/value/keys",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": [
- "a&b",
- "cMDAwMDAx"
}
},
{
- "at": "/query/restype",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "\"fixture-088e5dc109cf\""
}
},
{
@@ -18051,43 +46881,27 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/maxresults",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-error-code": "ConditionNotMet"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/board/2object-tests/board/a.txt2024-01-01T00:00:00.9908400ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-704c5ddfc8cb8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nested/c.txt2024-01-01T00:00:00.7881326ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-48ff0e151ab71application/octet-streamSooI8J03tzeVZJA4QItfMw==BlockBlobHottrueunlockedavailabletruefixture-marker+/c42f89fa82e8="
- },
- "framing": "chunked"
+ "data": "ConditionNotMetFixture error"
+ }
}
}
]
@@ -18099,94 +46913,232 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/a.txt"
+ "value": "error"
}
},
{
- "at": "/value/entries/0/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 8
+ "value": 412
}
},
{
- "at": "/value/entries/0/etag",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-704c5ddfc8cb"
+ "value": "ConditionNotMet"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/commit-refused",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "blocks": [],
+ "key": "object.bin",
+ "op": "azure.commit_blocks"
+ },
+ "exchanges": [
{
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blocklist"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ContainerNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ContainerNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/0/version",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.9908400Z"
+ "value": "error"
}
},
{
- "at": "/value/entries/0/is_current_version",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": 404
}
},
{
- "at": "/value/entries/0/content_md5_base64",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
+ "value": "ContainerNotFound"
}
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/nested/c.txt"
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/commit-reordered",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "commit reordered",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAy",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
}
- },
+ ],
+ "key": "object-tests/multipart/reordered.bin",
+ "op": "azure.commit_blocks"
+ },
+ "exchanges": [
{
- "at": "/value/entries/1/size",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/reordered.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "MDAwMDAyMDAwMDAx"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blocklist"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-446301cfeaef\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/entries/1/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-48ff0e151ab7"
+ "value": "\"fixture-446301cfeaef\""
}
},
{
- "at": "/value/entries/1/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -18195,70 +47147,27 @@
""
]
}
- },
- {
- "at": "/value/entries/1/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7881326Z"
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "SooI8J03tzeVZJA4QItfMw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-marker+/c42f89fa82e8="
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/list-page-size-one",
- "profile": "azure",
+ "id": "operations/azure-hns/commit-replacement",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "A page of zero entries is out of range, but a page of one is not. Send a page size of 1 and report the one entry and the continuation token.",
+ "purpose": "commit replacement",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list_page",
- "page_size": 1,
- "prefix": "object-tests/board/"
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ }
+ ],
+ "key": "object-tests/multipart/replaced.bin",
+ "op": "azure.commit_blocks"
},
"exchanges": [
{
@@ -18270,7 +47179,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -18278,23 +47187,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/multipart/replaced.bin"
}
},
{
- "at": "/query/restype",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "xml",
+ "value": "MDAwMDAx"
}
},
{
@@ -18302,43 +47203,29 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/maxresults",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1"
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-9c5e55ff559c\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "object-tests/board/1object-tests/board/a.txt2024-01-01T00:00:00.9908400ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-704c5ddfc8cb8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletruefixture-marker+/c42f89fa82e8="
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -18354,31 +47241,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/a.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 8
- }
- },
- {
- "at": "/value/entries/0/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-704c5ddfc8cb"
+ "value": "\"fixture-9c5e55ff559c\""
}
},
{
- "at": "/value/entries/0/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -18387,72 +47258,31 @@
""
]
}
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.9908400Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-marker+/c42f89fa82e8="
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/list-operation-timed-out",
- "profile": "azure",
+ "id": "operations/azure-hns/commit-unstaged-id",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Report a 500 OperationTimedOut answer as an error, after at most 5 retries",
+ "purpose": "commit unstaged id",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
- "origin": "transient",
"call": {
- "op": "list_page",
- "page_size": 2,
- "prefix": "object-tests/board/"
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDA5",
+ "kind": "latest"
+ }
+ ],
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.commit_blocks"
},
"exchanges": [
{
@@ -18464,7 +47294,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -18472,23 +47302,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/multipart/staged.bin"
}
},
{
- "at": "/query/restype",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDA5"
}
},
{
@@ -18496,45 +47318,86 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/maxresults",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "OperationTimedOut"
+ "x-ms-error-code": "InvalidBlockList"
},
"body": {
"encoding": "utf8",
- "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ "data": "InvalidBlockListFixture error"
}
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
},
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidBlockList"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/commit-unstaged-id-code-in-body",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "commit unstaged id, with the error code only in the XML body",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ ],
+ "origin": "constructed",
+ "call": {
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDA5",
+ "kind": "latest"
+ }
+ ],
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.commit_blocks"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -18544,7 +47407,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -18552,23 +47415,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/multipart/staged.bin"
}
},
{
- "at": "/query/restype",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDA5"
}
},
{
@@ -18576,46 +47431,82 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/maxresults",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "OperationTimedOut"
+ }
},
"body": {
"encoding": "utf8",
- "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ "data": "InvalidBlockListFixture error"
}
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
},
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidBlockList"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/commit",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "commit",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAy",
+ "kind": "latest"
+ }
+ ],
+ "key": "object-tests/multipart/committed.bin",
+ "op": "azure.commit_blocks"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -18625,7 +47516,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -18633,23 +47524,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/multipart/committed.bin"
}
},
{
- "at": "/query/restype",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDAy"
}
},
{
@@ -18657,46 +47540,88 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/maxresults",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "OperationTimedOut"
+ "etag": "\"fixture-8ec031f3abfa\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ "encoding": "base64",
+ "data": ""
}
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-8ec031f3abfa\""
+ }
},
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/commit-key-question",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "commit, with the key \"question?mark.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAy",
+ "kind": "latest"
+ }
+ ],
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "azure.commit_blocks"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -18706,7 +47631,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -18714,23 +47639,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/keys/question?mark.txt"
}
},
{
- "at": "/query/restype",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDAy"
}
},
{
@@ -18738,80 +47655,114 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/maxresults",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "OperationTimedOut"
+ "etag": "\"fixture-8ec031f3abfa\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ "encoding": "base64",
+ "data": ""
}
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-8ec031f3abfa\""
+ }
},
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/commit-key-hash",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "commit, with the key \"hash#tag.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAy",
+ "kind": "latest"
+ }
+ ],
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "azure.commit_blocks"
+ },
+ "exchanges": [
{
"alternatives": [
{
"request": [
{
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "PUT"
}
},
{
- "at": "/body_base64",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/keys/hash#tag.txt"
}
},
{
- "at": "/query/restype",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDAy"
}
},
{
@@ -18819,46 +47770,88 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/maxresults",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "OperationTimedOut"
+ "etag": "\"fixture-8ec031f3abfa\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ "encoding": "base64",
+ "data": ""
}
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-8ec031f3abfa\""
+ }
},
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/commit-key-percent",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "commit, with the key \"percent%20.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAy",
+ "kind": "latest"
+ }
+ ],
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "azure.commit_blocks"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -18868,7 +47861,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -18876,23 +47869,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/keys/percent%20.txt"
}
},
{
- "at": "/query/restype",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDAy"
}
},
{
@@ -18900,45 +47885,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/maxresults",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "OperationTimedOut"
+ "etag": "\"fixture-8ec031f3abfa\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ "encoding": "base64",
+ "data": ""
}
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -18947,40 +47919,52 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 500
+ "value": "\"fixture-8ec031f3abfa\""
}
},
{
- "at": "/code",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "OperationTimedOut"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-key-equal-to-prefix-delimited",
- "profile": "azure",
+ "id": "operations/azure-hns/commit-key-plus",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list key equal to prefix delimited",
+ "purpose": "commit, with the key \"plus+plus.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/exact"
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAy",
+ "kind": "latest"
+ }
+ ],
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "azure.commit_blocks"
},
"exchanges": [
{
@@ -18992,7 +47976,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -19000,23 +47984,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/keys/plus+plus.txt"
}
},
{
- "at": "/query/restype",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDAy"
}
},
{
@@ -19024,43 +48000,29 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/exact"
- }
- },
- {
- "at": "/query/delimiter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-8ec031f3abfa\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "object-tests/exact/object-tests/exact2024-01-01T00:00:00.9097158ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-aad9350ee3141application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/exact/"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -19076,31 +48038,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/exact"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-aad9350ee314"
+ "value": "\"fixture-8ec031f3abfa\""
}
},
{
- "at": "/value/entries/0/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -19109,77 +48055,31 @@
""
]
}
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.9097158Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes/0",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/exact/"
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/list-key-equal-to-prefix",
- "profile": "azure",
+ "id": "operations/azure-hns/commit-key-space",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list key equal to prefix",
+ "purpose": "commit, with the key \"space name.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/exact"
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAy",
+ "kind": "latest"
+ }
+ ],
+ "key": "object-tests/keys/space name.txt",
+ "op": "azure.commit_blocks"
},
"exchanges": [
{
@@ -19191,7 +48091,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -19199,23 +48099,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/keys/space name.txt"
}
},
{
- "at": "/query/restype",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDAy"
}
},
{
@@ -19223,35 +48115,29 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/exact"
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-8ec031f3abfa\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "object-tests/exactobject-tests/exact2024-01-01T00:00:00.9097158ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-aad9350ee3141application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/exact/child2024-01-01T00:00:00.1462797ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-bc7e3365fd2c1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -19267,90 +48153,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/exact"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-aad9350ee314"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.9097158Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/exact/child"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-bc7e3365fd2c"
+ "value": "\"fixture-8ec031f3abfa\""
}
},
{
- "at": "/value/entries/1/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -19359,69 +48170,31 @@
""
]
}
- },
- {
- "at": "/value/entries/1/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.1462797Z"
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/list-many-segments",
- "profile": "azure",
+ "id": "operations/azure-hns/commit-key-non-ascii",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list many segments",
+ "purpose": "commit, with the key \"café/雪.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/s/"
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAy",
+ "kind": "latest"
+ }
+ ],
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "azure.commit_blocks"
},
"exchanges": [
{
@@ -19433,7 +48206,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -19441,23 +48214,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/keys/café/雪.txt"
}
},
{
- "at": "/query/restype",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDAy"
}
},
{
@@ -19465,35 +48230,29 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/"
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-8ec031f3abfa\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "object-tests/s/object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s2024-01-01T00:00:00.1683367ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-bdb8a3090de61application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -19509,31 +48268,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-bdb8a3090de6"
+ "value": "\"fixture-8ec031f3abfa\""
}
},
{
- "at": "/value/entries/0/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -19542,70 +48285,31 @@
""
]
}
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.1683367Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/list-max-keys-zero",
- "profile": "azure",
+ "id": "operations/azure-hns/commit-key-double-slash",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list max keys zero",
+ "purpose": "commit, with the key \"double//slash.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list_page",
- "page_size": 0,
- "prefix": "object-tests/board/"
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAy",
+ "kind": "latest"
+ }
+ ],
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "azure.commit_blocks"
},
"exchanges": [
{
@@ -19617,7 +48321,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -19625,23 +48329,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/keys/double//slash.txt"
}
},
{
- "at": "/query/restype",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDAy"
}
},
{
@@ -19649,40 +48345,28 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/maxresults",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "0"
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "OutOfRangeQueryParameterValue"
+ "etag": "\"fixture-8ec031f3abfa\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "OutOfRangeQueryParameterValueFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -19695,83 +48379,52 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "OutOfRangeQueryParameterValue"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
+ "value": "ok"
}
},
{
- "at": "/parameter",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "page_size"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
+ "value": "\"fixture-8ec031f3abfa\""
}
},
{
- "at": "/code",
+ "at": "/value/version",
"optional": true,
"rule": {
- "is": "equal",
- "value": "OutOfRangeQueryParameterValue"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
- ]
+ ],
+ "refusal": null
},
{
- "id": "operations/azure/list-metadata",
- "profile": "azure",
+ "id": "operations/azure-hns/commit-key-trailing-slash",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list metadata",
+ "purpose": "commit, with the key \"trailing-slash/\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "include": [
- "metadata"
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAy",
+ "kind": "latest"
+ }
],
- "op": "list_page",
- "prefix": "object-tests/metadata-listed/"
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "azure.commit_blocks"
},
"exchanges": [
{
@@ -19783,7 +48436,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -19791,23 +48444,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/keys/trailing-slash/"
}
},
{
- "at": "/query/restype",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "container"
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDAy"
}
},
{
@@ -19815,43 +48460,27 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/metadata-listed/"
- }
- },
- {
- "at": "/query/include",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "metadata"
+ "value": "blocklist"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-error-code": "InvalidBlockList"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/metadata-listed/object-tests/metadata-listed/plain.txt2024-01-01T00:00:00.4469276ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-9a0b44f4b9e91application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/metadata-listed/shadowed.txt2024-01-01T00:00:00.9968398ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-cd8bb50852bd1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletruex"
- },
- "framing": "chunked"
+ "data": "InvalidBlockListFixture error"
+ }
}
}
]
@@ -19863,188 +48492,53 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/metadata-listed/plain.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-9a0b44f4b9e9"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.4469276Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/metadata-listed/shadowed.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-cd8bb50852bd"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.9968398Z"
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "error"
}
},
{
- "at": "/value/entries/0/metadata",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "label": "c"
- }
+ "value": 400
}
},
{
- "at": "/value/entries/1/metadata",
+ "at": "/code",
"optional": false,
- "rule": {
- "is": "equal",
- "value": {
- "Metadata": "x",
- "label": "b"
- }
+ "rule": {
+ "is": "equal",
+ "value": "InvalidBlockList"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-next-page",
- "profile": "azure",
+ "id": "operations/azure-hns/commit-content-properties",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list next page",
+ "purpose": "Commit a block list with content properties, sent as x-ms-blob-content-type, -language, -disposition and x-ms-blob-cache-control",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "continuation_token": "fixture-marker+/c42f89fa82e8=",
- "op": "list_page",
- "page_size": 2,
- "prefix": "object-tests/board/"
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAy",
+ "kind": "latest"
+ }
+ ],
+ "cache_control": "max-age=3600",
+ "content_disposition": "attachment; filename=\"report.txt\"",
+ "content_language": "nl-NL",
+ "content_type": "text/plain; charset=utf-8",
+ "key": "object-tests/multipart/committed.bin",
+ "op": "azure.commit_blocks"
},
"exchanges": [
{
@@ -20056,7 +48550,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -20064,75 +48558,77 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/committed.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDAy"
}
},
{
- "at": "/query/restype",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "blocklist"
}
},
{
- "at": "/query/comp",
+ "at": "/headers/x-ms-blob-content-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "text/plain; charset=utf-8"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-ms-blob-content-language",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "nl-NL"
}
},
{
- "at": "/query/maxresults",
+ "at": "/headers/x-ms-blob-content-disposition",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "attachment; filename=\"report.txt\""
}
},
{
- "at": "/query/marker",
+ "at": "/headers/x-ms-blob-cache-control",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-marker+/c42f89fa82e8="
+ "value": "max-age=3600"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-8ec031f3abfa\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "object-tests/board/fixture-marker+/c42f89fa82e8=2object-tests/board/z.txt2024-01-01T00:00:00.3834597ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b905747bf74f2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -20148,31 +48644,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/z.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/0/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-b905747bf74f"
+ "value": "\"fixture-8ec031f3abfa\""
}
},
{
- "at": "/value/entries/0/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -20181,70 +48661,145 @@
""
]
}
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.3834597Z"
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/commit-with-tier",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Commit a block list into an access tier, named in x-ms-access-tier",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "blocks": [
+ {
+ "id_base64": "MDAwMDAx",
+ "kind": "latest"
+ },
+ {
+ "id_base64": "MDAwMDAy",
+ "kind": "latest"
}
- },
+ ],
+ "key": "object-tests/multipart/committed.bin",
+ "op": "azure.commit_blocks",
+ "tier": "Cool"
+ },
+ "exchanges": [
{
- "at": "/value/entries/0/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/committed.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "MDAwMDAxMDAwMDAy"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blocklist"
+ }
+ },
+ {
+ "at": "/headers/x-ms-access-tier",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Cool"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-8ec031f3abfa\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/0/content_md5_base64",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "Je0by0I7C3IA9IX8X/ccjg=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/prefixes",
+ "at": "/value/etag",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "\"fixture-8ec031f3abfa\""
}
},
{
- "at": "/value/continuation_token",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-pagination",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-accepted",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list pagination",
+ "purpose": "delete accepted",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list",
- "page_size": 1,
- "prefix": ""
+ "key": "object-tests/remove/present.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -20256,7 +48811,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "DELETE"
}
},
{
@@ -20264,7 +48819,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/remove/present.txt"
}
},
{
@@ -20274,69 +48829,127 @@
"is": "equal",
"value": ""
}
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/delete-accepted-key-question",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "delete accepted, with the key \"question?mark.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
{
- "at": "/query/restype",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "DELETE"
}
},
{
- "at": "/query/comp",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/keys/question?mark.txt"
}
},
{
- "at": "/query/maxresults",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": ""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+Zmlyc3Q8L05hbWU+PFByb3BlcnRpZXM+PExhc3QtTW9kaWZpZWQ+TW9uLCAwMSBKYW4gMjAyNCAwMDowMDowMCBHTVQ8L0xhc3QtTW9kaWZpZWQ+PEV0YWc+ImZpeHR1cmUiPC9FdGFnPjxDb250ZW50LUxlbmd0aD41PC9Db250ZW50LUxlbmd0aD48QmxvYlR5cGU+QmxvY2tCbG9iPC9CbG9iVHlwZT48L1Byb3BlcnRpZXM+PC9CbG9iPjwvQmxvYnM+PE5leHRNYXJrZXI+b3BhcXVlKy89PC9OZXh0TWFya2VyPjwvRW51bWVyYXRpb25SZXN1bHRzPg=="
- },
- "framing": "chunked"
+ "data": ""
+ }
}
}
]
- },
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/delete-accepted-key-hash",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "delete accepted, with the key \"hash#tag.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "delete"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -20346,7 +48959,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "DELETE"
}
},
{
@@ -20354,7 +48967,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/keys/hash#tag.txt"
}
},
{
@@ -20364,73 +48977,97 @@
"is": "equal",
"value": ""
}
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/delete-accepted-key-percent",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "delete accepted, with the key \"percent%20.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
{
- "at": "/query/restype",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "DELETE"
}
},
{
- "at": "/query/comp",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "/fixture/object-tests/keys/percent%20.txt"
}
},
{
- "at": "/query/marker",
+ "at": "/body_base64",
"optional": false,
- "rule": {
- "is": "equal",
- "value": "opaque+/="
- }
- },
- {
- "at": "/query/prefix",
- "optional": true,
"rule": {
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/maxresults",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1"
- }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+c2Vjb25kPC9OYW1lPjxQcm9wZXJ0aWVzPjxMYXN0LU1vZGlmaWVkPk1vbiwgMDEgSmFuIDIwMjQgMDA6MDA6MDAgR01UPC9MYXN0LU1vZGlmaWVkPjxFdGFnPiJmaXh0dXJlIjwvRXRhZz48Q29udGVudC1MZW5ndGg+NTwvQ29udGVudC1MZW5ndGg+PEJsb2JUeXBlPkJsb2NrQmxvYjwvQmxvYlR5cGU+PC9Qcm9wZXJ0aWVzPjwvQmxvYj48L0Jsb2JzPjxOZXh0TWFya2VyPjwvTmV4dE1hcmtlcj48L0VudW1lcmF0aW9uUmVzdWx0cz4="
- },
- "framing": "chunked"
+ "data": ""
+ }
}
}
]
@@ -20444,33 +49081,21 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": [
- "first",
- "second"
- ]
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/list-order-delimited",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-accepted-key-plus",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list order delimited",
+ "purpose": "delete accepted, with the key \"plus+plus.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/order/"
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -20482,7 +49107,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "DELETE"
}
},
{
@@ -20490,7 +49115,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/keys/plus+plus.txt"
}
},
{
@@ -20500,46 +49125,87 @@
"is": "equal",
"value": ""
}
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/delete-accepted-key-space",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "delete accepted, with the key \"space name.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/keys/space name.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
{
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
- {
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "DELETE"
}
},
{
- "at": "/query/prefix",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/"
+ "value": "/fixture/object-tests/keys/space name.txt"
}
},
{
- "at": "/query/delimiter",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": ""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
@@ -20547,10 +49213,9 @@
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "object-tests/order//object-tests/order/A2024-01-01T00:00:00.6802950ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b1567b296bf41application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a2024-01-01T00:00:00.6196984ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-522bf336fec01application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a-b2024-01-01T00:00:00.7288701ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-ffd1d6ff8b0f1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a.txt2024-01-01T00:00:00.2739144ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1b029c6aa2e91application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a/object-tests/order/a02024-01-01T00:00:00.7594151ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-238f35f044af1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/b2024-01-01T00:00:00.4152572ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-91f7dfa02cf51application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/é2024-01-01T00:00:00.1938992ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e8b6d1d5f3fb1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -20564,466 +49229,263 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/A"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-b1567b296bf4"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.6802950Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-522bf336fec0"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.6196984Z"
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a-b"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-ffd1d6ff8b0f"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7288701Z"
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/2/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a.txt"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-1b029c6aa2e9"
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.2739144Z"
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/3/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/4/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a0"
- }
- },
- {
- "at": "/value/entries/4/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/4/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-238f35f044af"
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7594151Z"
- }
- },
- {
- "at": "/value/entries/4/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/4/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/5/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/b"
- }
- },
- {
- "at": "/value/entries/5/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/5/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-91f7dfa02cf5"
- }
- },
- {
- "at": "/value/entries/5/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.4152572Z"
- }
- },
- {
- "at": "/value/entries/5/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/5/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/6/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/é"
- }
- },
- {
- "at": "/value/entries/6/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/6/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-e8b6d1d5f3fb"
- }
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/delete-accepted-key-non-ascii",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "delete accepted, with the key \"café/雪.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "delete"
+ },
+ "exchanges": [
{
- "at": "/value/entries/6/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/café/雪.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/6/version",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.1938992Z"
+ "value": "ok"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/delete-accepted-key-double-slash",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "delete accepted, with the key \"double//slash.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "delete"
+ },
+ "exchanges": [
{
- "at": "/value/entries/6/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/double//slash.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/6/content_md5_base64",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "ok"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/delete-accepted-key-trailing-slash",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "delete accepted, with the key \"trailing-slash/\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "delete"
+ },
+ "exchanges": [
{
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 7
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/trailing-slash/"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidUri"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidUriFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/prefixes/0",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/a/"
+ "value": "error"
}
},
{
- "at": "/value/prefixes",
+ "at": "/status",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 1
+ "is": "equal",
+ "value": 400
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "InvalidUri"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-order",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-many",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list order",
+ "purpose": "Delete several objects in one batch and report each result",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/order/"
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -21035,7 +49497,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -21047,11 +49509,11 @@
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
},
{
@@ -21067,33 +49529,44 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "batch"
}
},
{
- "at": "/query/prefix",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/order/"
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "object-tests/order/object-tests/order/A2024-01-01T00:00:00.6802950ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b1567b296bf41application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a2024-01-01T00:00:00.6196984ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-522bf336fec01application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a-b2024-01-01T00:00:00.7288701ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-ffd1d6ff8b0f1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a.txt2024-01-01T00:00:00.2739144ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1b029c6aa2e91application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a/b2024-01-01T00:00:00.2584945ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8a57ec6c44921application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a02024-01-01T00:00:00.7594151ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-238f35f044af1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/b2024-01-01T00:00:00.4152572ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-91f7dfa02cf51application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/é2024-01-01T00:00:00.1938992ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e8b6d1d5f3fb1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 0\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture-0\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\nServer: Windows-Azure-Blob/1.0\r\n\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 1\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture-1\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\nServer: Windows-Azure-Blob/1.0\r\n\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 2\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture-2\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\nServer: Windows-Azure-Blob/1.0\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture--"
},
"framing": "chunked"
}
@@ -21111,515 +49584,48 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/A"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-b1567b296bf4"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.6802950Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-522bf336fec0"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.6196984Z"
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a-b"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-ffd1d6ff8b0f"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7288701Z"
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/2/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a.txt"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-1b029c6aa2e9"
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.2739144Z"
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/3/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/4/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a/b"
- }
- },
- {
- "at": "/value/entries/4/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/4/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-8a57ec6c4492"
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.2584945Z"
- }
- },
- {
- "at": "/value/entries/4/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/4/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/5/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a0"
- }
- },
- {
- "at": "/value/entries/5/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/5/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-238f35f044af"
- }
- },
- {
- "at": "/value/entries/5/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7594151Z"
- }
- },
- {
- "at": "/value/entries/5/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/5/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/6/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/b"
- }
- },
- {
- "at": "/value/entries/6/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/6/etag",
+ "at": "/value/deleted",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-91f7dfa02cf5"
- }
- },
- {
- "at": "/value/entries/6/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
+ "value": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt"
]
}
},
{
- "at": "/value/entries/6/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.4152572Z"
- }
- },
- {
- "at": "/value/entries/6/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/6/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/7/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/é"
- }
- },
- {
- "at": "/value/entries/7/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/7/etag",
+ "at": "/value/errors",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-e8b6d1d5f3fb"
- }
- },
- {
- "at": "/value/entries/7/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
+ "value": [
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/absent.txt",
+ "status": 404
+ }
]
}
- },
- {
- "at": "/value/entries/7/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.1938992Z"
- }
- },
- {
- "at": "/value/entries/7/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/7/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 8
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/list-all-order",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-many-denied",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list order",
+ "purpose": "Report each deletion of a batch that Azure refuses inside its 202 answer, here every one with 403 AuthorizationPermissionMismatch, as that key's error, not as deleted",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
],
"call": {
- "op": "list",
- "prefix": ""
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -21631,7 +49637,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -21643,11 +49649,11 @@
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
},
{
@@ -21663,41 +49669,44 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "batch"
}
},
{
- "at": "/query/prefix",
- "optional": true,
+ "at": "",
+ "optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ }
},
"body": {
- "encoding": "base64",
- "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+YTwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PEJsb2I+PE5hbWU+ejwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PC9CbG9icz48TmV4dE1hcmtlcj48L05leHRNYXJrZXI+PC9FbnVtZXJhdGlvblJlc3VsdHM+"
+ "encoding": "utf8",
+ "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 0\r\n\r\nHTTP/1.1 403 This request is not authorized to perform this operation using this permission.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: AuthorizationPermissionMismatch\r\nx-ms-version: 2023-11-03\r\nContent-Length: 129\r\nContent-Type: application/xml\r\n\r\nAuthorizationPermissionMismatchFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 1\r\n\r\nHTTP/1.1 403 This request is not authorized to perform this operation using this permission.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: AuthorizationPermissionMismatch\r\nx-ms-version: 2023-11-03\r\nContent-Length: 129\r\nContent-Type: application/xml\r\n\r\nAuthorizationPermissionMismatchFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 2\r\n\r\nHTTP/1.1 403 This request is not authorized to perform this operation using this permission.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: AuthorizationPermissionMismatch\r\nx-ms-version: 2023-11-03\r\nContent-Length: 129\r\nContent-Type: application/xml\r\n\r\nAuthorizationPermissionMismatchFixture error\r\n--batchresponse_fixture--"
},
"framing": "chunked"
}
@@ -21715,13 +49724,34 @@
}
},
{
- "at": "/value/keys",
+ "at": "/value/deleted",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": []
+ }
+ },
+ {
+ "at": "/value/errors",
"optional": false,
"rule": {
"is": "equal",
"value": [
- "a",
- "z"
+ {
+ "code": "AuthorizationPermissionMismatch",
+ "key": "object-tests/batch/a.txt",
+ "status": 403
+ },
+ {
+ "code": "AuthorizationPermissionMismatch",
+ "key": "object-tests/batch/b.txt",
+ "status": 403
+ },
+ {
+ "code": "AuthorizationPermissionMismatch",
+ "key": "object-tests/batch/absent.txt",
+ "status": 403
+ }
]
}
}
@@ -21729,16 +49759,22 @@
"refusal": null
},
{
- "id": "operations/azure/list-page",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-many-answers-out-of-order",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list page",
+ "purpose": "Match each part of a batch answer to its deletion by Content-ID, which links them, not by position. Azure has answered every recorded batch in order, up to 256 parts; this answer is written by hand",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
],
+ "origin": "constructed",
+ "derived_from": "operations/azure-hns/delete-many",
"call": {
- "op": "list_page",
- "prefix": "object-tests/board/"
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -21750,7 +49786,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -21762,11 +49798,11 @@
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
},
{
@@ -21782,33 +49818,44 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "batch"
}
},
{
- "at": "/query/prefix",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "object-tests/board/object-tests/board/a.txt2024-01-01T00:00:00.9908400ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-704c5ddfc8cb8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nested/c.txt2024-01-01T00:00:00.7881326ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-48ff0e151ab71application/octet-streamSooI8J03tzeVZJA4QItfMw==BlockBlobHottrueunlockedavailabletrueobject-tests/board/z.txt2024-01-01T00:00:00.3834597ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b905747bf74f2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
+ "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 2\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 0\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\n\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 1\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\n\r\n--batchresponse_fixture--"
},
"framing": "chunked"
}
@@ -21826,220 +49873,50 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/a.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 8
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-704c5ddfc8cb"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.9908400Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/nested/c.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
+ "at": "/value/deleted",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-48ff0e151ab7"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
+ "value": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt"
]
}
},
{
- "at": "/value/entries/1/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7881326Z"
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "SooI8J03tzeVZJA4QItfMw=="
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/z.txt"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/2/etag",
+ "at": "/value/errors",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-b905747bf74f"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
+ "value": [
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/absent.txt",
+ "status": 404
+ }
]
}
- },
- {
- "at": "/value/entries/2/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.3834597Z"
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/2/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Je0by0I7C3IA9IX8X/ccjg=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 3
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/list-prefix-without-slash",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-many-lf-line-endings",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list prefix without slash",
+ "purpose": "Read a batch answer whose lines end in LF alone correctly, or report it as an error, but never half-read it. Azure has not been seen to send it: HTTP and multipart require CRLF. This answer is the recorded one with every CR removed",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
],
+ "origin": "constructed",
+ "derived_from": "operations/azure-hns/delete-many",
"call": {
- "op": "list_page",
- "prefix": "object-tests/boa"
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -22051,7 +49928,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -22063,11 +49940,11 @@
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
},
{
@@ -22083,33 +49960,44 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "batch"
}
},
{
- "at": "/query/prefix",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/boa"
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "object-tests/boaobject-tests/board/a.txt2024-01-01T00:00:00.9908400ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-704c5ddfc8cb8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nested/c.txt2024-01-01T00:00:00.7881326ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-48ff0e151ab71application/octet-streamSooI8J03tzeVZJA4QItfMw==BlockBlobHottrueunlockedavailabletrueobject-tests/board/z.txt2024-01-01T00:00:00.3834597ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b905747bf74f2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
+ "data": "--batchresponse_fixture\nContent-Type: application/http\nContent-ID: 0\n\nHTTP/1.1 202 Accepted\nx-ms-request-id: fixture\nx-ms-delete-type-permanent: true\nx-ms-version: 2023-11-03\n\n--batchresponse_fixture\nContent-Type: application/http\nContent-ID: 1\n\nHTTP/1.1 202 Accepted\nx-ms-request-id: fixture\nx-ms-delete-type-permanent: true\nx-ms-version: 2023-11-03\n\n--batchresponse_fixture\nContent-Type: application/http\nContent-ID: 2\n\nHTTP/1.1 404 The specified blob does not exist.\nx-ms-request-id: fixture\nx-ms-error-code: BlobNotFound\nx-ms-version: 2023-11-03\nContent-Length: 110\nContent-Type: application/xml\n\nBlobNotFoundFixture error\n--batchresponse_fixture--"
},
"framing": "chunked"
}
@@ -22121,227 +50009,59 @@
{
"at": "/outcome",
"optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/a.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 8
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-704c5ddfc8cb"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
"rule": {
"is": "one_of",
"values": [
- null,
- ""
+ "ok",
+ "error"
]
}
},
{
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.9908400Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/nested/c.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-48ff0e151ab7"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
+ "at": "/value/deleted",
"optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7881326Z"
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "SooI8J03tzeVZJA4QItfMw=="
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/z.txt"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
"rule": {
"is": "equal",
- "value": "fixture-b905747bf74f"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
+ "value": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt"
]
}
},
{
- "at": "/value/entries/2/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.3834597Z"
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/2/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Je0by0I7C3IA9IX8X/ccjg=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 3
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
+ "at": "/value/errors",
+ "optional": true,
"rule": {
"is": "equal",
- "value": ""
+ "value": [
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/absent.txt",
+ "status": 404
+ }
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-separator-keys-delimited",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-many-without-content-id",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list separator keys delimited",
+ "purpose": "Report a batch answer whose parts carry no Content-ID as an error. Without one, only the order of the parts would link a result to its key, and a guess could report one key deleted when another failed. Azure echoes the Content-ID of every subrequest; this answer is the recorded one with them removed",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
],
+ "origin": "constructed",
+ "derived_from": "operations/azure-hns/delete-many",
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/separators/"
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -22353,7 +50073,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -22365,11 +50085,11 @@
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
},
{
@@ -22385,41 +50105,44 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/"
+ "value": "batch"
}
},
{
- "at": "/query/delimiter",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "/"
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "object-tests/separators//object-tests/separators/..leading2024-01-01T00:00:00.1857029ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-99f23038e5ea1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/a.b/object-tests/separators/dot2024-01-01T00:00:00.2106231ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-ccbcb2d755851application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/double/object-tests/separators/space /object-tests/separators/trailing/"
+ "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\n\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\n\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture--"
},
"framing": "chunked"
}
@@ -22433,197 +50156,29 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/..leading"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-99f23038e5ea"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.1857029Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/dot"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-ccbcb2d75585"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.2106231Z"
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- },
- {
- "at": "/value/prefixes/0",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/a.b/"
- }
- },
- {
- "at": "/value/prefixes/1",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/double/"
- }
- },
- {
- "at": "/value/prefixes/2",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/space /"
- }
- },
- {
- "at": "/value/prefixes/3",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/trailing/"
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 4
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "error"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-separator-keys",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-many-server-busy",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list separator keys",
+ "purpose": "Report a batch that Azure answers as a whole with 503 ServerBusy as an error, never as deleted keys. A client may retry up to five times first",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
],
+ "origin": "transient",
+ "derived_from": "operations/azure-hns/delete-many",
"call": {
- "op": "list_page",
- "prefix": "object-tests/separators/"
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -22635,7 +50190,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -22647,11 +50202,11 @@
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
},
{
@@ -22667,446 +50222,222 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "batch"
}
},
{
- "at": "/query/prefix",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/separators/"
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-error-code": "ServerBusy"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/separators/object-tests/separators/..leading2024-01-01T00:00:00.1857029ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-99f23038e5ea1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/a.b/c2024-01-01T00:00:00.4918444ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4a4f8766cc8e1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/dot2024-01-01T00:00:00.2106231ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-ccbcb2d755851application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/double//slash2024-01-01T00:00:00.9957719ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-32b8d82fce871application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/space /x2024-01-01T00:00:00.8166959ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0b64e32539cd1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/trailing/2024-01-01T00:00:00.6886650ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-3be5b05a5c3b1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
- },
- "framing": "chunked"
+ "data": "ServerBusyFixture error"
+ }
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/..leading"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-99f23038e5ea"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.1857029Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/a.b/c"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-4a4f8766cc8e"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.4918444Z"
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/dot"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-ccbcb2d75585"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.2106231Z"
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/2/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/double//slash"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-32b8d82fce87"
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.9957719Z"
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/3/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/4/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/space /x"
- }
- },
- {
- "at": "/value/entries/4/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/4/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-0b64e32539cd"
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.8166959Z"
- }
- },
- {
- "at": "/value/entries/4/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/4/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/5/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/trailing/"
- }
- },
- {
- "at": "/value/entries/5/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/5/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-3be5b05a5c3b"
- }
- },
- {
- "at": "/value/entries/5/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.6886650Z"
- }
- },
- {
- "at": "/value/entries/5/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/5/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 6
- }
},
{
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "batch"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyFixture error"
+ }
+ }
+ }
+ ],
+ "optional": true
},
{
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/list-snapshots-after-delete",
- "profile": "azure",
- "lane": "core",
- "purpose": "list snapshots after delete",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "include": [
- "snapshots"
- ],
- "op": "list_page",
- "prefix": "object-tests/snapshots-all/"
- },
- "exchanges": [
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "batch"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyFixture error"
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
{
"alternatives": [
{
@@ -23116,7 +50447,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -23128,11 +50459,11 @@
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
},
{
@@ -23148,46 +50479,222 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "batch"
}
},
{
- "at": "/query/prefix",
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyFixture error"
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/snapshots-all/"
+ "value": "POST"
}
},
{
- "at": "/query/include",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "snapshots"
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "batch"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-error-code": "ServerBusy"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/snapshots-all/"
+ "data": "ServerBusyFixture error"
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
},
- "framing": "chunked"
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "batch"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyFixture error"
+ }
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -23196,50 +50703,296 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
+ "value": "error"
}
},
{
- "at": "/value/prefixes",
+ "at": "/status",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": 503
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "ServerBusy"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-snapshots-after-snapshots-deleted",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-many-256",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list snapshots after snapshots deleted",
+ "purpose": "Delete 256 keys in one batch, the most Azure takes",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
],
"call": {
- "include": [
- "snapshots"
+ "keys": [
+ "object-tests/batch/many-0000.txt",
+ "object-tests/batch/many-0001.txt",
+ "object-tests/batch/many-0002.txt",
+ "object-tests/batch/many-0003.txt",
+ "object-tests/batch/many-0004.txt",
+ "object-tests/batch/many-0005.txt",
+ "object-tests/batch/many-0006.txt",
+ "object-tests/batch/many-0007.txt",
+ "object-tests/batch/many-0008.txt",
+ "object-tests/batch/many-0009.txt",
+ "object-tests/batch/many-0010.txt",
+ "object-tests/batch/many-0011.txt",
+ "object-tests/batch/many-0012.txt",
+ "object-tests/batch/many-0013.txt",
+ "object-tests/batch/many-0014.txt",
+ "object-tests/batch/many-0015.txt",
+ "object-tests/batch/many-0016.txt",
+ "object-tests/batch/many-0017.txt",
+ "object-tests/batch/many-0018.txt",
+ "object-tests/batch/many-0019.txt",
+ "object-tests/batch/many-0020.txt",
+ "object-tests/batch/many-0021.txt",
+ "object-tests/batch/many-0022.txt",
+ "object-tests/batch/many-0023.txt",
+ "object-tests/batch/many-0024.txt",
+ "object-tests/batch/many-0025.txt",
+ "object-tests/batch/many-0026.txt",
+ "object-tests/batch/many-0027.txt",
+ "object-tests/batch/many-0028.txt",
+ "object-tests/batch/many-0029.txt",
+ "object-tests/batch/many-0030.txt",
+ "object-tests/batch/many-0031.txt",
+ "object-tests/batch/many-0032.txt",
+ "object-tests/batch/many-0033.txt",
+ "object-tests/batch/many-0034.txt",
+ "object-tests/batch/many-0035.txt",
+ "object-tests/batch/many-0036.txt",
+ "object-tests/batch/many-0037.txt",
+ "object-tests/batch/many-0038.txt",
+ "object-tests/batch/many-0039.txt",
+ "object-tests/batch/many-0040.txt",
+ "object-tests/batch/many-0041.txt",
+ "object-tests/batch/many-0042.txt",
+ "object-tests/batch/many-0043.txt",
+ "object-tests/batch/many-0044.txt",
+ "object-tests/batch/many-0045.txt",
+ "object-tests/batch/many-0046.txt",
+ "object-tests/batch/many-0047.txt",
+ "object-tests/batch/many-0048.txt",
+ "object-tests/batch/many-0049.txt",
+ "object-tests/batch/many-0050.txt",
+ "object-tests/batch/many-0051.txt",
+ "object-tests/batch/many-0052.txt",
+ "object-tests/batch/many-0053.txt",
+ "object-tests/batch/many-0054.txt",
+ "object-tests/batch/many-0055.txt",
+ "object-tests/batch/many-0056.txt",
+ "object-tests/batch/many-0057.txt",
+ "object-tests/batch/many-0058.txt",
+ "object-tests/batch/many-0059.txt",
+ "object-tests/batch/many-0060.txt",
+ "object-tests/batch/many-0061.txt",
+ "object-tests/batch/many-0062.txt",
+ "object-tests/batch/many-0063.txt",
+ "object-tests/batch/many-0064.txt",
+ "object-tests/batch/many-0065.txt",
+ "object-tests/batch/many-0066.txt",
+ "object-tests/batch/many-0067.txt",
+ "object-tests/batch/many-0068.txt",
+ "object-tests/batch/many-0069.txt",
+ "object-tests/batch/many-0070.txt",
+ "object-tests/batch/many-0071.txt",
+ "object-tests/batch/many-0072.txt",
+ "object-tests/batch/many-0073.txt",
+ "object-tests/batch/many-0074.txt",
+ "object-tests/batch/many-0075.txt",
+ "object-tests/batch/many-0076.txt",
+ "object-tests/batch/many-0077.txt",
+ "object-tests/batch/many-0078.txt",
+ "object-tests/batch/many-0079.txt",
+ "object-tests/batch/many-0080.txt",
+ "object-tests/batch/many-0081.txt",
+ "object-tests/batch/many-0082.txt",
+ "object-tests/batch/many-0083.txt",
+ "object-tests/batch/many-0084.txt",
+ "object-tests/batch/many-0085.txt",
+ "object-tests/batch/many-0086.txt",
+ "object-tests/batch/many-0087.txt",
+ "object-tests/batch/many-0088.txt",
+ "object-tests/batch/many-0089.txt",
+ "object-tests/batch/many-0090.txt",
+ "object-tests/batch/many-0091.txt",
+ "object-tests/batch/many-0092.txt",
+ "object-tests/batch/many-0093.txt",
+ "object-tests/batch/many-0094.txt",
+ "object-tests/batch/many-0095.txt",
+ "object-tests/batch/many-0096.txt",
+ "object-tests/batch/many-0097.txt",
+ "object-tests/batch/many-0098.txt",
+ "object-tests/batch/many-0099.txt",
+ "object-tests/batch/many-0100.txt",
+ "object-tests/batch/many-0101.txt",
+ "object-tests/batch/many-0102.txt",
+ "object-tests/batch/many-0103.txt",
+ "object-tests/batch/many-0104.txt",
+ "object-tests/batch/many-0105.txt",
+ "object-tests/batch/many-0106.txt",
+ "object-tests/batch/many-0107.txt",
+ "object-tests/batch/many-0108.txt",
+ "object-tests/batch/many-0109.txt",
+ "object-tests/batch/many-0110.txt",
+ "object-tests/batch/many-0111.txt",
+ "object-tests/batch/many-0112.txt",
+ "object-tests/batch/many-0113.txt",
+ "object-tests/batch/many-0114.txt",
+ "object-tests/batch/many-0115.txt",
+ "object-tests/batch/many-0116.txt",
+ "object-tests/batch/many-0117.txt",
+ "object-tests/batch/many-0118.txt",
+ "object-tests/batch/many-0119.txt",
+ "object-tests/batch/many-0120.txt",
+ "object-tests/batch/many-0121.txt",
+ "object-tests/batch/many-0122.txt",
+ "object-tests/batch/many-0123.txt",
+ "object-tests/batch/many-0124.txt",
+ "object-tests/batch/many-0125.txt",
+ "object-tests/batch/many-0126.txt",
+ "object-tests/batch/many-0127.txt",
+ "object-tests/batch/many-0128.txt",
+ "object-tests/batch/many-0129.txt",
+ "object-tests/batch/many-0130.txt",
+ "object-tests/batch/many-0131.txt",
+ "object-tests/batch/many-0132.txt",
+ "object-tests/batch/many-0133.txt",
+ "object-tests/batch/many-0134.txt",
+ "object-tests/batch/many-0135.txt",
+ "object-tests/batch/many-0136.txt",
+ "object-tests/batch/many-0137.txt",
+ "object-tests/batch/many-0138.txt",
+ "object-tests/batch/many-0139.txt",
+ "object-tests/batch/many-0140.txt",
+ "object-tests/batch/many-0141.txt",
+ "object-tests/batch/many-0142.txt",
+ "object-tests/batch/many-0143.txt",
+ "object-tests/batch/many-0144.txt",
+ "object-tests/batch/many-0145.txt",
+ "object-tests/batch/many-0146.txt",
+ "object-tests/batch/many-0147.txt",
+ "object-tests/batch/many-0148.txt",
+ "object-tests/batch/many-0149.txt",
+ "object-tests/batch/many-0150.txt",
+ "object-tests/batch/many-0151.txt",
+ "object-tests/batch/many-0152.txt",
+ "object-tests/batch/many-0153.txt",
+ "object-tests/batch/many-0154.txt",
+ "object-tests/batch/many-0155.txt",
+ "object-tests/batch/many-0156.txt",
+ "object-tests/batch/many-0157.txt",
+ "object-tests/batch/many-0158.txt",
+ "object-tests/batch/many-0159.txt",
+ "object-tests/batch/many-0160.txt",
+ "object-tests/batch/many-0161.txt",
+ "object-tests/batch/many-0162.txt",
+ "object-tests/batch/many-0163.txt",
+ "object-tests/batch/many-0164.txt",
+ "object-tests/batch/many-0165.txt",
+ "object-tests/batch/many-0166.txt",
+ "object-tests/batch/many-0167.txt",
+ "object-tests/batch/many-0168.txt",
+ "object-tests/batch/many-0169.txt",
+ "object-tests/batch/many-0170.txt",
+ "object-tests/batch/many-0171.txt",
+ "object-tests/batch/many-0172.txt",
+ "object-tests/batch/many-0173.txt",
+ "object-tests/batch/many-0174.txt",
+ "object-tests/batch/many-0175.txt",
+ "object-tests/batch/many-0176.txt",
+ "object-tests/batch/many-0177.txt",
+ "object-tests/batch/many-0178.txt",
+ "object-tests/batch/many-0179.txt",
+ "object-tests/batch/many-0180.txt",
+ "object-tests/batch/many-0181.txt",
+ "object-tests/batch/many-0182.txt",
+ "object-tests/batch/many-0183.txt",
+ "object-tests/batch/many-0184.txt",
+ "object-tests/batch/many-0185.txt",
+ "object-tests/batch/many-0186.txt",
+ "object-tests/batch/many-0187.txt",
+ "object-tests/batch/many-0188.txt",
+ "object-tests/batch/many-0189.txt",
+ "object-tests/batch/many-0190.txt",
+ "object-tests/batch/many-0191.txt",
+ "object-tests/batch/many-0192.txt",
+ "object-tests/batch/many-0193.txt",
+ "object-tests/batch/many-0194.txt",
+ "object-tests/batch/many-0195.txt",
+ "object-tests/batch/many-0196.txt",
+ "object-tests/batch/many-0197.txt",
+ "object-tests/batch/many-0198.txt",
+ "object-tests/batch/many-0199.txt",
+ "object-tests/batch/many-0200.txt",
+ "object-tests/batch/many-0201.txt",
+ "object-tests/batch/many-0202.txt",
+ "object-tests/batch/many-0203.txt",
+ "object-tests/batch/many-0204.txt",
+ "object-tests/batch/many-0205.txt",
+ "object-tests/batch/many-0206.txt",
+ "object-tests/batch/many-0207.txt",
+ "object-tests/batch/many-0208.txt",
+ "object-tests/batch/many-0209.txt",
+ "object-tests/batch/many-0210.txt",
+ "object-tests/batch/many-0211.txt",
+ "object-tests/batch/many-0212.txt",
+ "object-tests/batch/many-0213.txt",
+ "object-tests/batch/many-0214.txt",
+ "object-tests/batch/many-0215.txt",
+ "object-tests/batch/many-0216.txt",
+ "object-tests/batch/many-0217.txt",
+ "object-tests/batch/many-0218.txt",
+ "object-tests/batch/many-0219.txt",
+ "object-tests/batch/many-0220.txt",
+ "object-tests/batch/many-0221.txt",
+ "object-tests/batch/many-0222.txt",
+ "object-tests/batch/many-0223.txt",
+ "object-tests/batch/many-0224.txt",
+ "object-tests/batch/many-0225.txt",
+ "object-tests/batch/many-0226.txt",
+ "object-tests/batch/many-0227.txt",
+ "object-tests/batch/many-0228.txt",
+ "object-tests/batch/many-0229.txt",
+ "object-tests/batch/many-0230.txt",
+ "object-tests/batch/many-0231.txt",
+ "object-tests/batch/many-0232.txt",
+ "object-tests/batch/many-0233.txt",
+ "object-tests/batch/many-0234.txt",
+ "object-tests/batch/many-0235.txt",
+ "object-tests/batch/many-0236.txt",
+ "object-tests/batch/many-0237.txt",
+ "object-tests/batch/many-0238.txt",
+ "object-tests/batch/many-0239.txt",
+ "object-tests/batch/many-0240.txt",
+ "object-tests/batch/many-0241.txt",
+ "object-tests/batch/many-0242.txt",
+ "object-tests/batch/many-0243.txt",
+ "object-tests/batch/many-0244.txt",
+ "object-tests/batch/many-0245.txt",
+ "object-tests/batch/many-0246.txt",
+ "object-tests/batch/many-0247.txt",
+ "object-tests/batch/many-0248.txt",
+ "object-tests/batch/many-0249.txt",
+ "object-tests/batch/many-0250.txt",
+ "object-tests/batch/many-0251.txt",
+ "object-tests/batch/many-0252.txt",
+ "object-tests/batch/many-0253.txt",
+ "object-tests/batch/many-0254.txt",
+ "object-tests/batch/many-0255.txt"
],
- "op": "list_page",
- "prefix": "object-tests/snapshots-only/"
+ "op": "delete_many"
},
"exchanges": [
{
@@ -23251,7 +51004,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -23263,11 +51016,11 @@
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
},
{
@@ -23283,158 +51036,2641 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/snapshots-only/"
+ "value": "batch"
}
},
{
- "at": "/query/include",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "snapshots"
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0000.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0001.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0002.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0003.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0004.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0005.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0006.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0007.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0008.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0009.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0010.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0011.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0012.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0013.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0014.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0015.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0016.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0017.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0018.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0019.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0020.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0021.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0022.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0023.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0024.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0025.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0026.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0027.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0028.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0029.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0030.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0031.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0032.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0033.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0034.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0035.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0036.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0037.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0038.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0039.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0040.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0041.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0042.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0043.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0044.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0045.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0046.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0047.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0048.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0049.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0050.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0051.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0052.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0053.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0054.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0055.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0056.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0057.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0058.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0059.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0060.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0061.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0062.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0063.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0064.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0065.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0066.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0067.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0068.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0069.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0070.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0071.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0072.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0073.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0074.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0075.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0076.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0077.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0078.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0079.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0080.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0081.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0082.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0083.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0084.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0085.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0086.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0087.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0088.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0089.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0090.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0091.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0092.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0093.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0094.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0095.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0096.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0097.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0098.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0099.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0100.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0101.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0102.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0103.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0104.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0105.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0106.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0107.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0108.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0109.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0110.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0111.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0112.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0113.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0114.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0115.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0116.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0117.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0118.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0119.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0120.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0121.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0122.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0123.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0124.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0125.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0126.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0127.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0128.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0129.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0130.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0131.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0132.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0133.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0134.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0135.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0136.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0137.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0138.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0139.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0140.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0141.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0142.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0143.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0144.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0145.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0146.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0147.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0148.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0149.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0150.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0151.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0152.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0153.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0154.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0155.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0156.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0157.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0158.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0159.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0160.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0161.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0162.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0163.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0164.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0165.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0166.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0167.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0168.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0169.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0170.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0171.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0172.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0173.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0174.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0175.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0176.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0177.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0178.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0179.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0180.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0181.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0182.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0183.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0184.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0185.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0186.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0187.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0188.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0189.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0190.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0191.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0192.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0193.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0194.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0195.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0196.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0197.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0198.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0199.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0200.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0201.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0202.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0203.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0204.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0205.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0206.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0207.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0208.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0209.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0210.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0211.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0212.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0213.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0214.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0215.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0216.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0217.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0218.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0219.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0220.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0221.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0222.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0223.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0224.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0225.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0226.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0227.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0228.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0229.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0230.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0231.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0232.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0233.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0234.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0235.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0236.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0237.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0238.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0239.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0240.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0241.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0242.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0243.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0244.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0245.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0246.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0247.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0248.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0249.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0250.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0251.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0252.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0253.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0254.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0255.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "object-tests/snapshots-only/object-tests/snapshots-only/object.txt2024-01-01T00:00:00.6170785ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-493478beeeaf4application/octet-streamTYtghPPRZ7dsrGaiKpG+Ag==BlockBlobHottrueunlockedavailabletrue"
+ "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 0\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 1\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 2\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 3\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 4\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 5\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 6\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 7\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 8\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 9\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 10\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 11\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 12\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 13\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 14\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 15\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 16\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 17\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 18\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 19\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 20\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 21\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 22\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 23\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 24\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 25\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 26\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 27\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 28\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 29\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 30\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 31\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 32\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 33\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 34\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 35\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 36\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 37\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 38\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 39\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 40\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 41\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 42\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 43\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 44\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 45\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 46\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 47\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 48\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 49\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 50\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 51\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 52\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 53\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 54\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 55\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 56\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 57\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 58\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 59\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 60\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 61\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 62\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 63\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 64\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 65\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 66\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 67\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 68\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 69\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 70\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 71\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 72\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 73\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 74\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 75\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 76\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 77\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 78\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 79\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 80\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 81\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 82\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 83\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 84\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 85\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 86\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 87\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 88\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 89\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 90\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 91\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 92\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 93\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 94\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 95\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 96\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 97\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 98\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 99\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 100\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 101\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 102\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 103\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 104\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 105\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 106\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 107\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 108\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 109\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 110\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 111\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 112\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 113\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 114\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 115\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 116\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 117\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 118\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 119\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 120\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 121\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 122\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 123\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 124\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 125\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 126\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 127\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 128\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 129\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 130\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 131\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 132\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 133\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 134\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 135\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 136\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 137\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 138\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 139\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 140\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 141\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 142\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 143\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 144\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 145\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 146\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 147\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 148\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 149\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 150\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 151\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 152\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 153\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 154\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 155\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 156\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 157\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 158\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 159\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 160\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 161\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 162\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 163\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 164\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 165\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 166\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 167\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 168\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 169\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 170\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 171\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 172\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 173\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 174\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 175\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 176\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 177\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 178\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 179\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 180\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 181\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 182\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 183\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 184\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 185\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 186\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 187\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 188\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 189\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 190\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 191\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 192\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 193\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 194\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 195\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 196\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 197\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 198\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 199\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 200\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 201\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 202\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 203\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 204\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 205\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 206\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 207\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 208\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 209\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 210\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 211\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 212\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 213\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 214\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 215\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 216\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 217\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 218\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 219\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 220\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 221\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 222\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 223\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 224\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 225\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 226\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 227\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 228\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 229\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 230\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 231\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 232\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 233\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 234\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 235\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 236\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 237\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 238\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 239\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 240\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 241\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 242\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 243\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 244\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 245\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 246\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 247\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 248\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 249\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 250\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 251\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 252\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 253\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 254\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 255\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture--"
},
"framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/snapshots-only/object.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 4
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-493478beeeaf"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/deleted",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": []
+ }
+ },
+ {
+ "at": "/value/errors",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0000.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0001.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0002.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0003.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0004.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0005.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0006.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0007.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0008.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0009.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0010.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0011.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0012.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0013.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0014.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0015.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0016.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0017.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0018.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0019.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0020.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0021.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0022.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0023.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0024.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0025.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0026.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0027.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0028.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0029.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0030.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0031.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0032.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0033.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0034.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0035.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0036.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0037.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0038.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0039.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0040.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0041.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0042.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0043.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0044.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0045.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0046.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0047.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0048.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0049.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0050.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0051.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0052.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0053.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0054.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0055.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0056.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0057.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0058.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0059.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0060.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0061.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0062.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0063.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0064.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0065.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0066.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0067.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0068.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0069.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0070.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0071.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0072.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0073.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0074.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0075.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0076.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0077.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0078.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0079.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0080.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0081.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0082.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0083.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0084.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0085.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0086.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0087.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0088.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0089.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0090.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0091.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0092.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0093.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0094.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0095.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0096.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0097.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0098.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0099.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0100.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0101.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0102.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0103.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0104.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0105.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0106.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0107.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0108.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0109.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0110.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0111.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0112.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0113.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0114.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0115.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0116.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0117.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0118.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0119.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0120.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0121.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0122.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0123.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0124.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0125.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0126.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0127.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0128.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0129.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0130.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0131.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0132.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0133.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0134.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0135.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0136.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0137.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0138.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0139.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0140.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0141.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0142.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0143.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0144.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0145.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0146.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0147.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0148.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0149.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0150.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0151.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0152.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0153.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0154.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0155.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0156.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0157.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0158.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0159.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0160.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0161.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0162.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0163.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0164.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0165.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0166.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0167.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0168.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0169.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0170.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0171.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0172.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0173.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0174.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0175.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0176.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0177.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0178.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0179.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0180.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0181.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0182.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0183.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0184.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0185.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0186.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0187.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0188.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0189.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0190.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0191.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0192.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0193.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0194.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0195.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0196.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0197.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0198.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0199.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0200.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0201.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0202.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0203.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0204.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0205.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0206.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0207.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0208.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0209.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0210.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0211.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0212.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0213.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0214.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0215.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0216.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0217.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0218.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0219.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0220.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0221.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0222.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0223.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0224.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0225.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0226.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0227.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0228.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0229.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0230.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0231.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0232.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0233.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0234.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0235.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0236.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0237.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0238.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0239.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0240.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0241.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0242.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0243.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0244.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0245.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0246.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0247.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0248.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0249.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0250.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0251.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0252.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0253.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0254.txt",
+ "status": 404
+ },
+ {
+ "code": "BlobNotFound",
+ "key": "object-tests/batch/many-0255.txt",
+ "status": 404
+ }
]
}
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.6170785Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "TYtghPPRZ7dsrGaiKpG+Ag=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/list-snapshots-and-versions",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-many-257",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list snapshots and versions",
+ "purpose": "Report a batch of 257 deletions, one more than Azure takes, as an error. Azure answers 202 with one part and no Content-ID, 400 ExceedsMaxBatchRequestCount, for the whole batch, not one part per deletion. A client may refuse it before sending",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
],
"call": {
- "include": [
- "snapshots",
- "versions"
+ "keys": [
+ "object-tests/batch/many-0000.txt",
+ "object-tests/batch/many-0001.txt",
+ "object-tests/batch/many-0002.txt",
+ "object-tests/batch/many-0003.txt",
+ "object-tests/batch/many-0004.txt",
+ "object-tests/batch/many-0005.txt",
+ "object-tests/batch/many-0006.txt",
+ "object-tests/batch/many-0007.txt",
+ "object-tests/batch/many-0008.txt",
+ "object-tests/batch/many-0009.txt",
+ "object-tests/batch/many-0010.txt",
+ "object-tests/batch/many-0011.txt",
+ "object-tests/batch/many-0012.txt",
+ "object-tests/batch/many-0013.txt",
+ "object-tests/batch/many-0014.txt",
+ "object-tests/batch/many-0015.txt",
+ "object-tests/batch/many-0016.txt",
+ "object-tests/batch/many-0017.txt",
+ "object-tests/batch/many-0018.txt",
+ "object-tests/batch/many-0019.txt",
+ "object-tests/batch/many-0020.txt",
+ "object-tests/batch/many-0021.txt",
+ "object-tests/batch/many-0022.txt",
+ "object-tests/batch/many-0023.txt",
+ "object-tests/batch/many-0024.txt",
+ "object-tests/batch/many-0025.txt",
+ "object-tests/batch/many-0026.txt",
+ "object-tests/batch/many-0027.txt",
+ "object-tests/batch/many-0028.txt",
+ "object-tests/batch/many-0029.txt",
+ "object-tests/batch/many-0030.txt",
+ "object-tests/batch/many-0031.txt",
+ "object-tests/batch/many-0032.txt",
+ "object-tests/batch/many-0033.txt",
+ "object-tests/batch/many-0034.txt",
+ "object-tests/batch/many-0035.txt",
+ "object-tests/batch/many-0036.txt",
+ "object-tests/batch/many-0037.txt",
+ "object-tests/batch/many-0038.txt",
+ "object-tests/batch/many-0039.txt",
+ "object-tests/batch/many-0040.txt",
+ "object-tests/batch/many-0041.txt",
+ "object-tests/batch/many-0042.txt",
+ "object-tests/batch/many-0043.txt",
+ "object-tests/batch/many-0044.txt",
+ "object-tests/batch/many-0045.txt",
+ "object-tests/batch/many-0046.txt",
+ "object-tests/batch/many-0047.txt",
+ "object-tests/batch/many-0048.txt",
+ "object-tests/batch/many-0049.txt",
+ "object-tests/batch/many-0050.txt",
+ "object-tests/batch/many-0051.txt",
+ "object-tests/batch/many-0052.txt",
+ "object-tests/batch/many-0053.txt",
+ "object-tests/batch/many-0054.txt",
+ "object-tests/batch/many-0055.txt",
+ "object-tests/batch/many-0056.txt",
+ "object-tests/batch/many-0057.txt",
+ "object-tests/batch/many-0058.txt",
+ "object-tests/batch/many-0059.txt",
+ "object-tests/batch/many-0060.txt",
+ "object-tests/batch/many-0061.txt",
+ "object-tests/batch/many-0062.txt",
+ "object-tests/batch/many-0063.txt",
+ "object-tests/batch/many-0064.txt",
+ "object-tests/batch/many-0065.txt",
+ "object-tests/batch/many-0066.txt",
+ "object-tests/batch/many-0067.txt",
+ "object-tests/batch/many-0068.txt",
+ "object-tests/batch/many-0069.txt",
+ "object-tests/batch/many-0070.txt",
+ "object-tests/batch/many-0071.txt",
+ "object-tests/batch/many-0072.txt",
+ "object-tests/batch/many-0073.txt",
+ "object-tests/batch/many-0074.txt",
+ "object-tests/batch/many-0075.txt",
+ "object-tests/batch/many-0076.txt",
+ "object-tests/batch/many-0077.txt",
+ "object-tests/batch/many-0078.txt",
+ "object-tests/batch/many-0079.txt",
+ "object-tests/batch/many-0080.txt",
+ "object-tests/batch/many-0081.txt",
+ "object-tests/batch/many-0082.txt",
+ "object-tests/batch/many-0083.txt",
+ "object-tests/batch/many-0084.txt",
+ "object-tests/batch/many-0085.txt",
+ "object-tests/batch/many-0086.txt",
+ "object-tests/batch/many-0087.txt",
+ "object-tests/batch/many-0088.txt",
+ "object-tests/batch/many-0089.txt",
+ "object-tests/batch/many-0090.txt",
+ "object-tests/batch/many-0091.txt",
+ "object-tests/batch/many-0092.txt",
+ "object-tests/batch/many-0093.txt",
+ "object-tests/batch/many-0094.txt",
+ "object-tests/batch/many-0095.txt",
+ "object-tests/batch/many-0096.txt",
+ "object-tests/batch/many-0097.txt",
+ "object-tests/batch/many-0098.txt",
+ "object-tests/batch/many-0099.txt",
+ "object-tests/batch/many-0100.txt",
+ "object-tests/batch/many-0101.txt",
+ "object-tests/batch/many-0102.txt",
+ "object-tests/batch/many-0103.txt",
+ "object-tests/batch/many-0104.txt",
+ "object-tests/batch/many-0105.txt",
+ "object-tests/batch/many-0106.txt",
+ "object-tests/batch/many-0107.txt",
+ "object-tests/batch/many-0108.txt",
+ "object-tests/batch/many-0109.txt",
+ "object-tests/batch/many-0110.txt",
+ "object-tests/batch/many-0111.txt",
+ "object-tests/batch/many-0112.txt",
+ "object-tests/batch/many-0113.txt",
+ "object-tests/batch/many-0114.txt",
+ "object-tests/batch/many-0115.txt",
+ "object-tests/batch/many-0116.txt",
+ "object-tests/batch/many-0117.txt",
+ "object-tests/batch/many-0118.txt",
+ "object-tests/batch/many-0119.txt",
+ "object-tests/batch/many-0120.txt",
+ "object-tests/batch/many-0121.txt",
+ "object-tests/batch/many-0122.txt",
+ "object-tests/batch/many-0123.txt",
+ "object-tests/batch/many-0124.txt",
+ "object-tests/batch/many-0125.txt",
+ "object-tests/batch/many-0126.txt",
+ "object-tests/batch/many-0127.txt",
+ "object-tests/batch/many-0128.txt",
+ "object-tests/batch/many-0129.txt",
+ "object-tests/batch/many-0130.txt",
+ "object-tests/batch/many-0131.txt",
+ "object-tests/batch/many-0132.txt",
+ "object-tests/batch/many-0133.txt",
+ "object-tests/batch/many-0134.txt",
+ "object-tests/batch/many-0135.txt",
+ "object-tests/batch/many-0136.txt",
+ "object-tests/batch/many-0137.txt",
+ "object-tests/batch/many-0138.txt",
+ "object-tests/batch/many-0139.txt",
+ "object-tests/batch/many-0140.txt",
+ "object-tests/batch/many-0141.txt",
+ "object-tests/batch/many-0142.txt",
+ "object-tests/batch/many-0143.txt",
+ "object-tests/batch/many-0144.txt",
+ "object-tests/batch/many-0145.txt",
+ "object-tests/batch/many-0146.txt",
+ "object-tests/batch/many-0147.txt",
+ "object-tests/batch/many-0148.txt",
+ "object-tests/batch/many-0149.txt",
+ "object-tests/batch/many-0150.txt",
+ "object-tests/batch/many-0151.txt",
+ "object-tests/batch/many-0152.txt",
+ "object-tests/batch/many-0153.txt",
+ "object-tests/batch/many-0154.txt",
+ "object-tests/batch/many-0155.txt",
+ "object-tests/batch/many-0156.txt",
+ "object-tests/batch/many-0157.txt",
+ "object-tests/batch/many-0158.txt",
+ "object-tests/batch/many-0159.txt",
+ "object-tests/batch/many-0160.txt",
+ "object-tests/batch/many-0161.txt",
+ "object-tests/batch/many-0162.txt",
+ "object-tests/batch/many-0163.txt",
+ "object-tests/batch/many-0164.txt",
+ "object-tests/batch/many-0165.txt",
+ "object-tests/batch/many-0166.txt",
+ "object-tests/batch/many-0167.txt",
+ "object-tests/batch/many-0168.txt",
+ "object-tests/batch/many-0169.txt",
+ "object-tests/batch/many-0170.txt",
+ "object-tests/batch/many-0171.txt",
+ "object-tests/batch/many-0172.txt",
+ "object-tests/batch/many-0173.txt",
+ "object-tests/batch/many-0174.txt",
+ "object-tests/batch/many-0175.txt",
+ "object-tests/batch/many-0176.txt",
+ "object-tests/batch/many-0177.txt",
+ "object-tests/batch/many-0178.txt",
+ "object-tests/batch/many-0179.txt",
+ "object-tests/batch/many-0180.txt",
+ "object-tests/batch/many-0181.txt",
+ "object-tests/batch/many-0182.txt",
+ "object-tests/batch/many-0183.txt",
+ "object-tests/batch/many-0184.txt",
+ "object-tests/batch/many-0185.txt",
+ "object-tests/batch/many-0186.txt",
+ "object-tests/batch/many-0187.txt",
+ "object-tests/batch/many-0188.txt",
+ "object-tests/batch/many-0189.txt",
+ "object-tests/batch/many-0190.txt",
+ "object-tests/batch/many-0191.txt",
+ "object-tests/batch/many-0192.txt",
+ "object-tests/batch/many-0193.txt",
+ "object-tests/batch/many-0194.txt",
+ "object-tests/batch/many-0195.txt",
+ "object-tests/batch/many-0196.txt",
+ "object-tests/batch/many-0197.txt",
+ "object-tests/batch/many-0198.txt",
+ "object-tests/batch/many-0199.txt",
+ "object-tests/batch/many-0200.txt",
+ "object-tests/batch/many-0201.txt",
+ "object-tests/batch/many-0202.txt",
+ "object-tests/batch/many-0203.txt",
+ "object-tests/batch/many-0204.txt",
+ "object-tests/batch/many-0205.txt",
+ "object-tests/batch/many-0206.txt",
+ "object-tests/batch/many-0207.txt",
+ "object-tests/batch/many-0208.txt",
+ "object-tests/batch/many-0209.txt",
+ "object-tests/batch/many-0210.txt",
+ "object-tests/batch/many-0211.txt",
+ "object-tests/batch/many-0212.txt",
+ "object-tests/batch/many-0213.txt",
+ "object-tests/batch/many-0214.txt",
+ "object-tests/batch/many-0215.txt",
+ "object-tests/batch/many-0216.txt",
+ "object-tests/batch/many-0217.txt",
+ "object-tests/batch/many-0218.txt",
+ "object-tests/batch/many-0219.txt",
+ "object-tests/batch/many-0220.txt",
+ "object-tests/batch/many-0221.txt",
+ "object-tests/batch/many-0222.txt",
+ "object-tests/batch/many-0223.txt",
+ "object-tests/batch/many-0224.txt",
+ "object-tests/batch/many-0225.txt",
+ "object-tests/batch/many-0226.txt",
+ "object-tests/batch/many-0227.txt",
+ "object-tests/batch/many-0228.txt",
+ "object-tests/batch/many-0229.txt",
+ "object-tests/batch/many-0230.txt",
+ "object-tests/batch/many-0231.txt",
+ "object-tests/batch/many-0232.txt",
+ "object-tests/batch/many-0233.txt",
+ "object-tests/batch/many-0234.txt",
+ "object-tests/batch/many-0235.txt",
+ "object-tests/batch/many-0236.txt",
+ "object-tests/batch/many-0237.txt",
+ "object-tests/batch/many-0238.txt",
+ "object-tests/batch/many-0239.txt",
+ "object-tests/batch/many-0240.txt",
+ "object-tests/batch/many-0241.txt",
+ "object-tests/batch/many-0242.txt",
+ "object-tests/batch/many-0243.txt",
+ "object-tests/batch/many-0244.txt",
+ "object-tests/batch/many-0245.txt",
+ "object-tests/batch/many-0246.txt",
+ "object-tests/batch/many-0247.txt",
+ "object-tests/batch/many-0248.txt",
+ "object-tests/batch/many-0249.txt",
+ "object-tests/batch/many-0250.txt",
+ "object-tests/batch/many-0251.txt",
+ "object-tests/batch/many-0252.txt",
+ "object-tests/batch/many-0253.txt",
+ "object-tests/batch/many-0254.txt",
+ "object-tests/batch/many-0255.txt",
+ "object-tests/batch/many-0256.txt"
],
- "op": "list_page",
- "prefix": "object-tests/snapshots/"
+ "op": "delete_many"
},
"exchanges": [
{
@@ -23446,7 +53682,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -23458,11 +53694,11 @@
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
},
{
@@ -23478,41 +53714,1060 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/snapshots/"
+ "value": "batch"
}
},
{
- "at": "/query/include",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "snapshots,versions"
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0000.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0001.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0002.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0003.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0004.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0005.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0006.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0007.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0008.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0009.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0010.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0011.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0012.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0013.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0014.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0015.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0016.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0017.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0018.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0019.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0020.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0021.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0022.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0023.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0024.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0025.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0026.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0027.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0028.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0029.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0030.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0031.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0032.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0033.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0034.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0035.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0036.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0037.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0038.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0039.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0040.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0041.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0042.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0043.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0044.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0045.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0046.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0047.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0048.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0049.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0050.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0051.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0052.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0053.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0054.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0055.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0056.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0057.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0058.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0059.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0060.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0061.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0062.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0063.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0064.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0065.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0066.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0067.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0068.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0069.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0070.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0071.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0072.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0073.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0074.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0075.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0076.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0077.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0078.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0079.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0080.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0081.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0082.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0083.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0084.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0085.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0086.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0087.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0088.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0089.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0090.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0091.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0092.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0093.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0094.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0095.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0096.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0097.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0098.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0099.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0100.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0101.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0102.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0103.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0104.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0105.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0106.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0107.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0108.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0109.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0110.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0111.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0112.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0113.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0114.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0115.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0116.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0117.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0118.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0119.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0120.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0121.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0122.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0123.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0124.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0125.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0126.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0127.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0128.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0129.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0130.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0131.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0132.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0133.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0134.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0135.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0136.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0137.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0138.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0139.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0140.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0141.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0142.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0143.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0144.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0145.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0146.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0147.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0148.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0149.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0150.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0151.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0152.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0153.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0154.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0155.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0156.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0157.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0158.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0159.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0160.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0161.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0162.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0163.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0164.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0165.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0166.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0167.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0168.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0169.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0170.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0171.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0172.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0173.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0174.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0175.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0176.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0177.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0178.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0179.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0180.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0181.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0182.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0183.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0184.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0185.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0186.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0187.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0188.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0189.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0190.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0191.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0192.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0193.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0194.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0195.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0196.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0197.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0198.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0199.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0200.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0201.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0202.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0203.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0204.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0205.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0206.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0207.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0208.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0209.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0210.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0211.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0212.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0213.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0214.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0215.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0216.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0217.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0218.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0219.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0220.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0221.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0222.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0223.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0224.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0225.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0226.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0227.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0228.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0229.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0230.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0231.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0232.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0233.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0234.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0235.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0236.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0237.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0238.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0239.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0240.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0241.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0242.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0243.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0244.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0245.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0246.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0247.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0248.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0249.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0250.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0251.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0252.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0253.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0254.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0255.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/many-0256.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "object-tests/snapshots/object-tests/snapshots/object.txt2024-01-01T00:00:00.4877091ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7adbbe4768f33application/octet-stream+XxdKZQb+xsv2rCHSQargg==BlockBlobHottruetrueobject-tests/snapshots/object.txt2024-01-01T00:00:00.7351568ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7adbbe4768f33application/octet-stream+XxdKZQb+xsv2rCHSQargg==BlockBlobHottruetrueobject-tests/snapshots/object.txt2024-01-01T00:00:00.8746441ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7adbbe4768f33application/octet-stream+XxdKZQb+xsv2rCHSQargg==BlockBlobHottruetrueobject-tests/snapshots/object.txt2024-01-01T00:00:00.6268993ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-222f410e528f3application/octet-streamuKn3Fdu2T9XFbneDxoIKYQ==BlockBlobHottrueunlockedavailabletrue"
+ "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\n\r\nHTTP/1.1 400 The batch operation exceeds maximum number of allowed subrequests.\r\nx-ms-error-code: ExceedsMaxBatchRequestCount\r\nx-ms-request-id: fixture\r\nx-ms-version: 2023-11-03\r\nContent-Length: 125\r\nContent-Type: application/xml\r\n\r\nExceedsMaxBatchRequestCountFixture error\r\n--batchresponse_fixture--"
},
"framing": "chunked"
}
@@ -23526,672 +54781,84 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/snapshots/object.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 3
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-7adbbe4768f3"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.4877091Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "+XxdKZQb+xsv2rCHSQargg=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/snapshots/object.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 3
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-7adbbe4768f3"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7351568Z"
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "+XxdKZQb+xsv2rCHSQargg=="
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/snapshots/object.txt"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 3
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-7adbbe4768f3"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.8746441Z"
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "+XxdKZQb+xsv2rCHSQargg=="
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/snapshots/object.txt"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 3
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-222f410e528f"
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.6268993Z"
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/3/content_md5_base64",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "uKn3Fdu2T9XFbneDxoIKYQ=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 4
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
+ "value": 400
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "ExceedsMaxBatchRequestCount"
}
}
],
- "refusal": null
- },
- {
- "id": "operations/azure/list-snapshots",
- "profile": "azure",
- "lane": "core",
- "purpose": "list snapshots",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "include": [
- "snapshots"
- ],
- "op": "list_page",
- "prefix": "object-tests/snapshots/"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/snapshots/"
- }
- },
- {
- "at": "/query/include",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "snapshots"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "utf8",
- "data": "object-tests/snapshots/object-tests/snapshots/object.txt2024-01-01T00:00:00.7351568ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7adbbe4768f33application/octet-stream+XxdKZQb+xsv2rCHSQargg==BlockBlobHottruetrueobject-tests/snapshots/object.txt2024-01-01T00:00:00.6268993ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-222f410e528f3application/octet-streamuKn3Fdu2T9XFbneDxoIKYQ==BlockBlobHottrueunlockedavailabletrue"
- },
- "framing": "chunked"
- }
- }
- ]
- }
- ],
- "expect": [
+ "refusal": [
{
"at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/snapshots/object.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 3
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-7adbbe4768f3"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7351568Z"
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "+XxdKZQb+xsv2rCHSQargg=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/snapshots/object.txt"
+ "value": "refused"
}
},
{
- "at": "/value/entries/1/size",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": 3
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/entries/1/etag",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-222f410e528f"
+ "value": "keys"
}
},
{
- "at": "/value/entries/1/snapshot",
+ "at": "/status",
"optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.6268993Z"
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "uKn3Fdu2T9XFbneDxoIKYQ=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/list-staged-only",
- "profile": "azure",
- "lane": "core",
- "purpose": "list staged only",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "op": "list_page",
- "prefix": "object-tests/multipart/staged.bin"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/multipart/staged.bin"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "utf8",
- "data": "object-tests/multipart/staged.bin"
- },
- "framing": "chunked"
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
+ "value": 400
}
},
{
- "at": "/value/continuation_token",
- "optional": false,
+ "at": "/code",
+ "optional": true,
"rule": {
"is": "equal",
- "value": ""
+ "value": "ExceedsMaxBatchRequestCount"
}
}
- ],
- "refusal": null
+ ]
},
{
- "id": "operations/azure/list-unauthenticated",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-many-unauthenticated",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "purpose": "Report a batch whose token Azure does not accept as one error for the whole batch, as Azure answers it, not as an answer per key",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/"
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -24203,7 +54870,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -24215,11 +54882,11 @@
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
},
{
@@ -24235,15 +54902,28 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "batch"
}
},
{
- "at": "/query/prefix",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/"
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
@@ -24296,19 +54976,20 @@
"refusal": null
},
{
- "id": "operations/azure/list-versions-of-deleted-object",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-many-container-missing",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list versions of deleted object",
+ "purpose": "Report a batch in a missing container, which Azure answers 202 with 404 ContainerNotFound for each deletion, as that error for each key and none deleted, or as one error of kind container_not_found",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
],
"call": {
- "include": [
- "versions"
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
],
- "op": "list_page",
- "prefix": "object-tests/versions-mtydohr2/deleted.txt"
+ "op": "delete_many"
},
"exchanges": [
{
@@ -24320,7 +55001,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -24332,11 +55013,11 @@
}
},
{
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
}
},
{
@@ -24352,41 +55033,44 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/versions-mtydohr2/deleted.txt"
+ "value": "batch"
}
},
{
- "at": "/query/include",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "versions"
+ "is": "blob_batch",
+ "subrequests": [
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/a.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/b.txt"
+ },
+ {
+ "method": "DELETE",
+ "path": "/fixture/object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
+ "content-type": "multipart/mixed; boundary=batchresponse_fixture",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "object-tests/versions-mtydohr2/deleted.txtobject-tests/versions-mtydohr2/deleted.txt2024-01-01T00:00:00.0160641ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-3b1602b981e92application/octet-streamASCk+RlqX5659SPzH5FNpw==BlockBlobHottruetrueobject-tests/versions-mtydohr2/deleted.txt2024-01-01T00:00:00.3127057ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-629d3a1755352application/octet-stream4cgEiIU9hqudbez+MNiTDw==BlockBlobHottruetrueobject-tests/versions-mtydohr2/deleted.txt2024-01-01T00:00:00.0760252ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4de1996d2b4b2application/octet-streamip/X39qAKSH9xAefmlKM6A==BlockBlobHottruetrue"
+ "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 0\r\n\r\nHTTP/1.1 404 The specified container does not exist.\r\nx-ms-error-code: ContainerNotFound\r\nx-ms-request-id: fixture\r\nx-ms-version: 2023-11-03\r\nContent-Length: 115\r\nContent-Type: application/xml\r\n\r\nContainerNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 1\r\n\r\nHTTP/1.1 404 The specified container does not exist.\r\nx-ms-error-code: ContainerNotFound\r\nx-ms-request-id: fixture\r\nx-ms-version: 2023-11-03\r\nContent-Length: 115\r\nContent-Type: application/xml\r\n\r\nContainerNotFoundFixture error\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 2\r\n\r\nHTTP/1.1 404 The specified container does not exist.\r\nx-ms-error-code: ContainerNotFound\r\nx-ms-request-id: fixture\r\nx-ms-version: 2023-11-03\r\nContent-Length: 115\r\nContent-Type: application/xml\r\n\r\nContainerNotFoundFixture error\r\n--batchresponse_fixture--"
},
"framing": "chunked"
}
@@ -24398,238 +55082,69 @@
{
"at": "/outcome",
"optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/versions-mtydohr2/deleted.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-3b1602b981e9"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.0160641Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
"rule": {
"is": "one_of",
"values": [
- null,
- false
+ "ok",
+ "error"
]
}
},
{
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ASCk+RlqX5659SPzH5FNpw=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/versions-mtydohr2/deleted.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-629d3a175535"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
+ "at": "/value/deleted",
"optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.3127057Z"
+ "value": []
}
},
{
- "at": "/value/entries/1/is_current_version",
+ "at": "/value/errors",
"optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "4cgEiIU9hqudbez+MNiTDw=="
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/versions-mtydohr2/deleted.txt"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
"rule": {
"is": "equal",
- "value": "fixture-4de1996d2b4b"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
+ "value": [
+ {
+ "code": "ContainerNotFound",
+ "key": "object-tests/batch/a.txt",
+ "status": 404
+ },
+ {
+ "code": "ContainerNotFound",
+ "key": "object-tests/batch/b.txt",
+ "status": 404
+ },
+ {
+ "code": "ContainerNotFound",
+ "key": "object-tests/batch/absent.txt",
+ "status": 404
+ }
]
}
},
{
- "at": "/value/entries/2/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.0760252Z"
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
+ "at": "/kind",
"optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ip/X39qAKSH9xAefmlKM6A=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 3
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "container_not_found"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-versions",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-leased-if-match-without-lease-id",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list versions",
+ "purpose": "Refuse to delete a leased object whose If-Match holds but that names no lease ID",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
],
"call": {
- "include": [
- "versions"
- ],
- "op": "list_page",
- "prefix": "object-tests/versions-mtydohr2/"
+ "if_match": "\"fixture-etag\"",
+ "key": "object-tests/leases/object.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -24641,7 +55156,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "DELETE"
}
},
{
@@ -24649,7 +55164,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/leases/object.txt"
}
},
{
@@ -24661,55 +55176,29 @@
}
},
{
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/versions-mtydohr2/"
- }
- },
- {
- "at": "/query/include",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "versions"
+ "value": "\"fixture-etag\""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-error-code": "LeaseIdMissing"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/versions-mtydohr2/object-tests/versions-mtydohr2/object.txt2024-01-01T00:00:00.2318906ZMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-9dc9ff8bf5132application/octet-streamZlTHNMyrj0QP8IJetEPcfw==BlockBlobHottruetrueobject-tests/versions-mtydohr2/object.txt2024-01-01T00:00:00.3326281ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-9e3bb87be41c2application/octet-streamGyZ2GcSBLMRu4oF0eITKUA==BlockBlobHottrueunlockedavailabletrue"
- },
- "framing": "chunked"
+ "data": "LeaseIdMissingFixture error"
+ }
}
}
]
@@ -24721,168 +55210,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/versions-mtydohr2/object.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-9dc9ff8bf513"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.2318906Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ZlTHNMyrj0QP8IJetEPcfw=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/versions-mtydohr2/object.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-9e3bb87be41c"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.3326281Z"
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/1/content_md5_base64",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "GyZ2GcSBLMRu4oF0eITKUA=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
+ "value": 412
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "LeaseIdMissing"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/list-written-with-hashes",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-leased-without-lease-id",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "list written with hashes",
+ "purpose": "Refuse to delete a leased object without its lease ID",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/hashes/"
+ "key": "object-tests/leases/object.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -24894,7 +55254,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "DELETE"
}
},
{
@@ -24902,7 +55262,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/leases/object.txt"
}
},
{
@@ -24912,49 +55272,23 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/hashes/"
- }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-error-code": "LeaseIdMissing"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/hashes/object-tests/hashes/committed.bin2024-01-01T00:00:00.2802899ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-879f71a2d23b13application/octet-streamN6YZkbg+Lyfxtskwn8iRCg==BlockBlobHottrueunlockedavailabletrueobject-tests/hashes/crc64.txt2024-01-01T00:00:00.1153123ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-c55cf5f18aae13application/octet-stream9XBvAwWoR9o=N6YZkbg+Lyfxtskwn8iRCg==BlockBlobHottrueunlockedavailabletrueobject-tests/hashes/md5.txt2024-01-01T00:00:00.7803759ZtrueMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1f199b777f0713application/octet-streamN6YZkbg+Lyfxtskwn8iRCg==BlockBlobHottrueunlockedavailabletrue"
- },
- "framing": "chunked"
+ "data": "LeaseIdMissingFixture error"
+ }
}
}
]
@@ -24966,233 +55300,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/hashes/committed.bin"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 13
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-879f71a2d23b"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.2802899Z"
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "N6YZkbg+Lyfxtskwn8iRCg=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/hashes/crc64.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 13
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-c55cf5f18aae"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.1153123Z"
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "N6YZkbg+Lyfxtskwn8iRCg=="
- }
- },
- {
- "at": "/value/entries/1/content_crc64_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "9XBvAwWoR9o="
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/hashes/md5.txt"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 13
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-1f199b777f07"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7803759Z"
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/2/content_md5_base64",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "N6YZkbg+Lyfxtskwn8iRCg=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 3
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
+ "value": 412
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "LeaseIdMissing"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-container-missing",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-server-busy",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put container missing",
+ "purpose": "Report a 503 ServerBusy answer as an error, after at most 5 retries",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
],
+ "origin": "transient",
"call": {
- "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
- "key": "object.txt",
- "op": "put"
+ "key": "object-tests/remove/present.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -25204,7 +55346,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -25212,7 +55354,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object.txt"
+ "value": "/fixture/object-tests/remove/present.txt"
}
},
{
@@ -25220,86 +55362,176 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "bm90aGluZyBpcyBzdG9yZWQ="
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "/fixture/object-tests/remove/present.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ContainerNotFound"
+ "x-ms-error-code": "ServerBusy"
},
"body": {
"encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
}
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
+ ],
+ "optional": true
},
{
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/remove/present.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ],
+ "optional": true
},
{
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ContainerNotFound"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/put-crc64-mismatch",
- "profile": "azure",
- "lane": "core",
- "purpose": "put crc64 mismatch",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "body_base64": "ZGVjbGFyZWQtYm9keQ==",
- "checksum": {
- "algorithm": "azure_crc64",
- "value_base64": "khqMBK+EUSA="
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/remove/present.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ],
+ "optional": true
},
- "key": "object-tests/hashes/crc64-mismatch.txt",
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -25309,7 +55541,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -25317,7 +55549,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/hashes/crc64-mismatch.txt"
+ "value": "/fixture/object-tests/remove/present.txt"
}
},
{
@@ -25325,46 +55557,78 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ZGVjbGFyZWQtYm9keQ=="
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
}
},
{
- "at": "/headers/x-ms-content-crc64",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "khqMBK+EUSA="
+ "value": "/fixture/object-tests/remove/present.txt"
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "Crc64Mismatch"
+ "x-ms-error-code": "ServerBusy"
},
"body": {
"encoding": "utf8",
- "data": "Crc64MismatchFixture error"
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
}
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -25381,7 +55645,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": 503
}
},
{
@@ -25389,24 +55653,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "Crc64Mismatch"
+ "value": "ServerBusy"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-created-empty",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-if-unmodified-since-past",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put created empty",
+ "purpose": "Refuse a delete with 412 when the object changed after If-Unmodified-Since",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "",
- "key": "object-tests/write/empty.bin",
- "op": "put"
+ "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/remove/present.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -25418,7 +55682,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -25426,7 +55690,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/empty.bin"
+ "value": "/fixture/object-tests/remove/present.txt"
}
},
{
@@ -25438,34 +55702,28 @@
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/if-unmodified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 412,
"headers": {
- "content-md5": "1B2M2Y8AsgTpgAmY7PhCfg==",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ee13937a1c94\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7573734Z"
+ "x-ms-error-code": "ConditionNotMet"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "ConditionNotMetFixture error"
}
}
}
@@ -25478,40 +55736,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ee13937a1c94\""
+ "value": 412
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7573734Z"
+ "value": "ConditionNotMet"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-created",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-container-missing",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put created",
+ "purpose": "delete container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -25523,7 +55780,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -25531,7 +55788,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object.txt"
}
},
{
@@ -25539,38 +55796,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 404,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-b9991ef94e3d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ "x-ms-error-code": "ContainerNotFound"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "ContainerNotFoundFixture error"
}
}
}
@@ -25583,40 +55826,48 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-b9991ef94e3d\""
+ "value": 404
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2084665Z"
+ "value": "ContainerNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-created-key-question",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-current-version",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put created, with the key \"question?mark.txt\"",
+ "purpose": "delete current version",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/question?mark.txt",
- "op": "put"
+ "key": "object-tests/versions-mtypy4jp/object.txt",
+ "op": "delete",
+ "version": "none-2"
},
"exchanges": [
{
@@ -25628,7 +55879,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -25636,7 +55887,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/question?mark.txt"
+ "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
}
},
{
@@ -25644,38 +55895,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/query/versionid",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "none-2"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 400,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-b9991ef94e3d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "InvalidQueryParameterValueFixture error"
}
}
}
@@ -25688,40 +55932,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-b9991ef94e3d\""
+ "value": 400
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2084665Z"
+ "value": "InvalidQueryParameterValue"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-created-key-hash",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-if-match-current",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put created, with the key \"hash#tag.txt\"",
+ "purpose": "delete if match current",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/hash#tag.txt",
- "op": "put"
+ "if_match": "\"fixture-51797d9f787d\"",
+ "key": "object-tests/remove/conditional.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -25733,7 +55977,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -25741,7 +55985,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/hash#tag.txt"
+ "value": "/fixture/object-tests/remove/conditional.txt"
}
},
{
@@ -25749,34 +55993,28 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "\"fixture-51797d9f787d\""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 202,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
"date": {
"from": "now"
},
- "etag": "\"fixture-b9991ef94e3d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
@@ -25795,38 +56033,21 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-b9991ef94e3d\""
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.2084665Z"
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/put-created-key-percent",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-missing",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put created, with the key \"percent%20.txt\"",
+ "purpose": "delete missing. A client reports it as not_found: the object is absent",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/percent%20.txt",
- "op": "put"
+ "key": "object-tests/remove/absent.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -25838,7 +56059,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -25846,7 +56067,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/percent%20.txt"
+ "value": "/fixture/object-tests/remove/absent.txt"
}
},
{
@@ -25854,38 +56075,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 404,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-b9991ef94e3d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
}
}
}
@@ -25898,40 +56105,48 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-b9991ef94e3d\""
+ "value": 404
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2084665Z"
+ "value": "BlobNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "not_found"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-created-key-plus",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-precondition-failed",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put created, with the key \"plus+plus.txt\"",
+ "purpose": "delete precondition failed",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/plus+plus.txt",
- "op": "put"
+ "if_match": "\"fixture-088e5dc109cf\"",
+ "key": "object-tests/remove/conditional.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -25943,7 +56158,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -25951,7 +56166,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/plus+plus.txt"
+ "value": "/fixture/object-tests/remove/conditional.txt"
}
},
{
@@ -25959,38 +56174,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "\"fixture-088e5dc109cf\""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 412,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-b9991ef94e3d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ "x-ms-error-code": "ConditionNotMet"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "ConditionNotMetFixture error"
}
}
}
@@ -26003,40 +56212,43 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-b9991ef94e3d\""
+ "value": 412
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2084665Z"
+ "value": "ConditionNotMet"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-created-key-space",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-precondition-failed-code-in-body",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put created, with the key \"space name.txt\"",
+ "purpose": "delete precondition failed, with the error code only in the XML body",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
],
+ "origin": "constructed",
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/space name.txt",
- "op": "put"
+ "if_match": "\"fixture-088e5dc109cf\"",
+ "key": "object-tests/remove/conditional.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -26048,7 +56260,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -26056,7 +56268,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/space name.txt"
+ "value": "/fixture/object-tests/remove/conditional.txt"
}
},
{
@@ -26064,38 +56276,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "\"fixture-088e5dc109cf\""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 412,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-b9991ef94e3d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "ConditionNotMetFixture error"
}
}
}
@@ -26108,40 +56313,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-b9991ef94e3d\""
+ "value": 412
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2084665Z"
+ "value": "ConditionNotMet"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-created-key-non-ascii",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-previous-version",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put created, with the key \"café/雪.txt\"",
+ "purpose": "delete previous version",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/café/雪.txt",
- "op": "put"
+ "key": "object-tests/versions-mtypy4jp/object.txt",
+ "op": "delete",
+ "version": "none-1"
},
"exchanges": [
{
@@ -26153,7 +56358,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -26161,7 +56366,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/café/雪.txt"
+ "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
}
},
{
@@ -26169,38 +56374,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/query/versionid",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "none-1"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 400,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-b9991ef94e3d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "InvalidQueryParameterValueFixture error"
}
}
}
@@ -26213,40 +56411,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-b9991ef94e3d\""
+ "value": 400
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2084665Z"
+ "value": "InvalidQueryParameterValue"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-created-key-double-slash",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-refused-for-snapshots",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put created, with the key \"double//slash.txt\"",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/double//slash.txt",
- "op": "put"
+ "key": "object-tests/snapshots/object.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -26258,7 +56455,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -26266,7 +56463,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/double//slash.txt"
+ "value": "/fixture/object-tests/snapshots/object.txt"
}
},
{
@@ -26274,34 +56471,20 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 202,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
"date": {
"from": "now"
},
- "etag": "\"fixture-b9991ef94e3d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
@@ -26320,38 +56503,21 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-b9991ef94e3d\""
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.2084665Z"
- }
}
],
"refusal": null
},
{
- "id": "operations/azure/put-created-key-trailing-slash",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-refused",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put created, with the key \"trailing-slash/\"",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/trailing-slash/",
- "op": "put"
+ "key": "object.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -26363,7 +56529,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -26371,7 +56537,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/trailing-slash/"
+ "value": "/fixture/object.txt"
}
},
{
@@ -26379,38 +56545,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 404,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-b9991ef94e3d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ "x-ms-error-code": "ContainerNotFound"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "ContainerNotFoundFixture error"
}
}
}
@@ -26423,40 +56575,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-b9991ef94e3d\""
+ "value": 404
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2084665Z"
+ "value": "ContainerNotFound"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/copy-missing-source",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-snapshot",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Refuse a copy whose source does not exist",
+ "purpose": "delete snapshot",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/copy/target.txt",
- "op": "copy",
- "source_key": "object-tests/copy/absent.txt"
+ "key": "object-tests/snapshots/object.txt",
+ "op": "delete",
+ "snapshot": "2024-01-01T00:00:00.8557081Z"
},
"exchanges": [
{
@@ -26468,7 +56620,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -26476,7 +56628,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/copy/target.txt"
+ "value": "/fixture/object-tests/snapshots/object.txt"
}
},
{
@@ -26488,11 +56640,11 @@
}
},
{
- "at": "/headers/x-ms-copy-source",
+ "at": "/query/snapshot",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "https?://[^/]+/fixture/object-tests/copy/absent\\.txt"
+ "is": "equal",
+ "value": "2024-01-01T00:00:00.8557081Z"
}
}
],
@@ -26545,17 +56697,17 @@
"refusal": null
},
{
- "id": "operations/azure/copy",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-snapshots-only",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Copy an object to another key in the same container",
+ "purpose": "delete snapshots only",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/copy/target.txt",
- "op": "copy",
- "source_key": "object-tests/copy/source.txt"
+ "key": "object-tests/snapshots-only/object.txt",
+ "op": "delete",
+ "snapshots": "only"
},
"exchanges": [
{
@@ -26567,7 +56719,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -26575,7 +56727,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/copy/target.txt"
+ "value": "/fixture/object-tests/snapshots-only/object.txt"
}
},
{
@@ -26587,29 +56739,28 @@
}
},
{
- "at": "/headers/x-ms-copy-source",
+ "at": "/headers/x-ms-delete-snapshots",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
+ "is": "equal",
+ "value": "only"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 202,
+ "status": 404,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-copy-id": "fixture-copy-id",
- "x-ms-copy-status": "success"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
- "encoding": "empty"
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
}
}
}
@@ -26622,31 +56773,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/copy_status",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "success"
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/get-page-ranges",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-unauthenticated",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "List the written ranges of a page blob",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-page-ranges"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/pages/object.vhd",
- "op": "azure.get_page_ranges"
+ "key": "object-tests/remove/absent.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -26658,7 +56817,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "DELETE"
}
},
{
@@ -26666,7 +56825,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/pages/object.vhd"
+ "value": "/fixture/object-tests/remove/absent.txt"
}
},
{
@@ -26676,34 +56835,23 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "pagelist"
- }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 401,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-content-length": "1024"
+ "x-ms-error-code": "InvalidAuthenticationInfo"
},
"body": {
"encoding": "utf8",
- "data": "0511"
- },
- "framing": "chunked"
+ "data": "InvalidAuthenticationInfoFixture error"
+ }
}
}
]
@@ -26715,38 +56863,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/ranges",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": [
- {
- "end": 512,
- "start": 0
- }
- ]
+ "value": 401
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidAuthenticationInfo"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/upload-pages-unaligned",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-versioned-object",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Refuse a page write that does not start on a 512-byte boundary",
+ "purpose": "delete versioned object",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/put-page"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=",
- "key": "object-tests/pages/object.vhd",
- "offset": 1,
- "op": "azure.upload_pages"
+ "key": "object-tests/versions-mtypy4jp/deleted.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -26758,7 +56907,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -26766,7 +56915,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/pages/object.vhd"
+ "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt"
}
},
{
@@ -26774,48 +56923,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA="
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "page"
- }
- },
- {
- "at": "/headers/x-ms-page-write",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "update"
- }
- },
- {
- "at": "/headers/x-ms-range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=1-512"
+ "value": ""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidHeaderValue"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidHeaderValueFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -26828,41 +56953,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidHeaderValue"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/upload-pages",
- "profile": "azure",
+ "id": "operations/azure-hns/delete-with-snapshots",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Write the first page of a page blob",
+ "purpose": "delete with snapshots",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/put-page"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=",
- "key": "object-tests/pages/object.vhd",
- "offset": 0,
- "op": "azure.upload_pages"
+ "key": "object-tests/snapshots-all/object.txt",
+ "op": "delete",
+ "snapshots": "include"
},
"exchanges": [
{
@@ -26874,7 +56982,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -26882,7 +56990,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/pages/object.vhd"
+ "value": "/fixture/object-tests/snapshots-all/object.txt"
}
},
{
@@ -26890,49 +56998,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA="
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "page"
- }
- },
- {
- "at": "/headers/x-ms-page-write",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "update"
+ "value": ""
}
},
{
- "at": "/headers/x-ms-range",
+ "at": "/headers/x-ms-delete-snapshots",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=0-511"
+ "value": "include"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 202,
"headers": {
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-sequence-number": "0",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "empty"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -26952,17 +57043,16 @@
"refusal": null
},
{
- "id": "operations/azure/create-page",
- "profile": "azure",
+ "id": "operations/azure-hns/get-after-snapshots-deleted",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Create a page blob of 1,024 bytes",
+ "purpose": "get after snapshots deleted",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/pages/object.vhd",
- "op": "azure.create_page",
- "size": 1024
+ "key": "object-tests/snapshots-only/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -26974,7 +57064,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -26982,7 +57072,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/pages/object.vhd"
+ "value": "/fixture/object-tests/snapshots-only/object.txt"
}
},
{
@@ -26992,38 +57082,29 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PageBlob"
- }
- },
- {
- "at": "/headers/x-ms-blob-content-length",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1024"
- }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-md5": "TYtghPPRZ7dsrGaiKpG+Ag==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
+ "etag": "\"fixture-8fc260370f1a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "empty"
+ "encoding": "base64",
+ "data": "a2VwdA=="
}
}
}
@@ -27038,22 +57119,72 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-8fc260370f1a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 4
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "TYtghPPRZ7dsrGaiKpG+Ag=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "a2VwdA=="
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure/append-block-to-block-blob",
- "profile": "azure",
+ "id": "operations/azure-hns/get-committed-nothing",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Refuse an append to a block blob",
+ "purpose": "get committed nothing",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "c2Vjb25k",
- "key": "object-tests/append/object.log",
- "op": "azure.append_block"
+ "key": "object-tests/multipart/empty.bin",
+ "op": "get"
},
"exchanges": [
{
@@ -27065,7 +57196,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -27073,7 +57204,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/append/object.log"
+ "value": "/fixture/object-tests/multipart/empty.bin"
}
},
{
@@ -27081,32 +57212,30 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "appendblock"
+ "value": ""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidBlobType"
+ "etag": "\"fixture-072bed78cc6a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidBlobTypeFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -27119,41 +57248,66 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 409
+ "value": "\"fixture-072bed78cc6a\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidBlobType"
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure/append-block-at-wrong-position",
- "profile": "azure",
+ "id": "operations/azure-hns/get-committed-over-whole-object",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Refuse an append whose position condition does not match the blob length",
+ "purpose": "get committed over whole object",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "append_position": 0,
- "body_base64": "c2Vjb25k",
- "key": "object-tests/append/object.log",
- "op": "azure.append_block"
+ "key": "object-tests/multipart/over.bin",
+ "op": "get"
},
"exchanges": [
{
@@ -27165,7 +57319,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -27173,7 +57327,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/append/object.log"
+ "value": "/fixture/object-tests/multipart/over.bin"
}
},
{
@@ -27181,40 +57335,30 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "appendblock"
- }
- },
- {
- "at": "/headers/x-ms-blob-condition-appendpos",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "0"
+ "value": ""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "AppendPositionConditionNotMet"
+ "etag": "\"fixture-7dc650e58291\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "AppendPositionConditionNotMetFixture error"
+ "encoding": "base64",
+ "data": "YmxvY2s="
}
}
}
@@ -27223,44 +57367,70 @@
],
"expect": [
{
- "at": "/outcome",
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-7dc650e58291\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 5
+ }
+ },
+ {
+ "at": "/value/content_type",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "application/octet-stream"
}
},
{
- "at": "/status",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": 412
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/code",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "AppendPositionConditionNotMet"
+ "value": "YmxvY2s="
}
}
],
"refusal": null
},
{
- "id": "operations/azure/append-block",
- "profile": "azure",
+ "id": "operations/azure-hns/get-committed",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Append a block to an append blob and report its offset",
+ "purpose": "get committed",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "c2Vjb25k",
- "key": "object-tests/append/object.log",
- "op": "azure.append_block"
+ "key": "object-tests/multipart/committed.bin",
+ "op": "get"
},
"exchanges": [
{
@@ -27272,7 +57442,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -27280,7 +57450,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/append/object.log"
+ "value": "/fixture/object-tests/multipart/committed.bin"
}
},
{
@@ -27288,34 +57458,30 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "appendblock"
+ "value": ""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
+ "etag": "\"fixture-8ec031f3abfa\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-append-offset": "5",
- "x-ms-blob-committed-block-count": "2",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "empty"
+ "encoding": "base64",
+ "data": "Zmlyc3RzZWNvbmQ="
}
}
}
@@ -27332,35 +57498,62 @@
}
},
{
- "at": "/value/append_offset",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 5
+ "value": "\"fixture-8ec031f3abfa\""
}
},
{
- "at": "/value/committed_block_count",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 2
+ "value": 11
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Zmlyc3RzZWNvbmQ="
}
}
],
"refusal": null
},
{
- "id": "operations/azure/create-append",
- "profile": "azure",
+ "id": "operations/azure-hns/get-container-missing",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Create an empty append blob",
+ "purpose": "get container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/append/object.log",
- "op": "azure.create_append"
+ "key": "object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -27372,7 +57565,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -27380,7 +57573,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/append/object.log"
+ "value": "/fixture/object.txt"
}
},
{
@@ -27390,30 +57583,22 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "AppendBlob"
- }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 404,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-error-code": "ContainerNotFound"
},
"body": {
- "encoding": "empty"
+ "encoding": "utf8",
+ "data": "ContainerNotFoundFixture error"
}
}
}
@@ -27426,25 +57611,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ContainerNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-leased-if-match-without-lease-id",
- "profile": "azure",
+ "id": "operations/azure-hns/head-container-missing",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Refuse a write to a leased object whose If-Match holds but that names no lease ID",
+ "purpose": "Report a HEAD of a blob in a missing container as container_not_found. Azure answers 404 without a body, but names ContainerNotFound in x-ms-error-code",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "c2Vjb25k",
- "if_match": "\"fixture-etag\"",
- "key": "object-tests/leases/object.txt",
- "op": "put"
+ "key": "object.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -27456,7 +57663,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -27464,7 +57671,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "/fixture/object.txt"
}
},
{
@@ -27472,40 +57679,22 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-etag\""
+ "value": ""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 404,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "LeaseIdMissing"
+ "x-ms-error-code": "ContainerNotFound"
},
"body": {
- "encoding": "utf8",
- "data": "LeaseIdMissingFixture error"
+ "encoding": "empty"
}
}
}
@@ -27526,7 +57715,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": 404
}
},
{
@@ -27534,25 +57723,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "LeaseIdMissing"
+ "value": "ContainerNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-leased-with-lease-id",
- "profile": "azure",
+ "id": "operations/azure-hns/get-current-version-of-deleted-object",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Write to a leased object with its lease ID",
+ "purpose": "get current version of deleted object",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "c2Vjb25k",
- "key": "object-tests/leases/object.txt",
- "lease_id": "11111111-2222-3333-4444-555555555555",
- "op": "put"
+ "key": "object-tests/versions-mtypy4jp/deleted.txt",
+ "op": "get",
+ "version": "none-2"
},
"exchanges": [
{
@@ -27564,7 +57760,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -27572,7 +57768,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt"
}
},
{
@@ -27580,40 +57776,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
},
{
- "at": "/headers/x-ms-lease-id",
+ "at": "/query/versionid",
"optional": false,
"rule": {
"is": "equal",
- "value": "11111111-2222-3333-4444-555555555555"
+ "value": "none-2"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 400,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ }
},
"body": {
- "encoding": "empty"
+ "encoding": "utf8",
+ "data": "InvalidQueryParameterValueFixture error"
}
}
}
@@ -27626,24 +57813,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidQueryParameterValue"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-leased-without-lease-id",
- "profile": "azure",
+ "id": "operations/azure-hns/get-current-version",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Refuse a write to a leased object that names no lease ID",
+ "purpose": "get current version",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "c2Vjb25k",
- "key": "object-tests/leases/object.txt",
- "op": "put"
+ "key": "object-tests/versions-mtypy4jp/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -27655,7 +57857,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -27663,7 +57865,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
}
},
{
@@ -27671,32 +57873,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "LeaseIdMissing"
+ "etag": "\"fixture-ecff54f15562\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "LeaseIdMissingFixture error"
+ "encoding": "base64",
+ "data": "djI="
}
}
}
@@ -27709,41 +57910,75 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": "\"fixture-ecff54f15562\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "LeaseIdMissing"
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GyZ2GcSBLMRu4oF0eITKUA=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "djI="
}
}
],
"refusal": null
},
{
- "id": "operations/azure/lease-break",
- "profile": "azure",
+ "id": "operations/azure-hns/get-deleted-snapshot",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Break a lease at once",
+ "purpose": "get deleted snapshot",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "action": "break",
- "break_period": 0,
- "key": "object-tests/leases/object.txt",
- "op": "azure.lease"
+ "key": "object-tests/snapshots/object.txt",
+ "op": "get",
+ "snapshot": "2024-01-01T00:00:00.8557081Z"
},
"exchanges": [
{
@@ -27755,7 +57990,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -27763,7 +57998,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "/fixture/object-tests/snapshots/object.txt"
}
},
{
@@ -27775,44 +58010,28 @@
}
},
{
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "lease"
- }
- },
- {
- "at": "/headers/x-ms-lease-action",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "break"
- }
- },
- {
- "at": "/headers/x-ms-lease-break-period",
+ "at": "/query/snapshot",
"optional": false,
"rule": {
"is": "equal",
- "value": "0"
+ "value": "2024-01-01T00:00:00.8557081Z"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 202,
+ "status": 404,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-time": "0"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
- "encoding": "empty"
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
}
}
}
@@ -27825,25 +58044,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/lease-release",
- "profile": "azure",
+ "id": "operations/azure-hns/get-deleted-versioned-object",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Release a lease",
+ "purpose": "get deleted versioned object",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "action": "release",
- "key": "object-tests/leases/object.txt",
- "lease_id": "11111111-2222-3333-4444-555555555555",
- "op": "azure.lease"
+ "key": "object-tests/versions-mtypy4jp/deleted.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -27855,7 +58088,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -27863,7 +58096,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt"
}
},
{
@@ -27873,45 +58106,22 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "lease"
- }
- },
- {
- "at": "/headers/x-ms-lease-action",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "release"
- }
- },
- {
- "at": "/headers/x-ms-lease-id",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "11111111-2222-3333-4444-555555555555"
- }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
- "encoding": "empty"
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
}
}
}
@@ -27924,26 +58134,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/lease-acquire-leased",
- "profile": "azure",
+ "id": "operations/azure-hns/get-duplicate-id",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Refuse a second lease while another lease holds the object",
+ "purpose": "get duplicate id",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "action": "acquire",
- "duration": 15,
- "key": "object-tests/leases/object.txt",
- "op": "azure.lease",
- "proposed_lease_id": "66666666-7777-8888-9999-000000000000"
+ "key": "object-tests/multipart/duplicate.bin",
+ "op": "get"
},
"exchanges": [
{
@@ -27955,7 +58178,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -27963,7 +58186,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "/fixture/object-tests/multipart/duplicate.bin"
}
},
{
@@ -27973,54 +58196,28 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "lease"
- }
- },
- {
- "at": "/headers/x-ms-lease-action",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "acquire"
- }
- },
- {
- "at": "/headers/x-ms-lease-duration",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "15"
- }
- },
- {
- "at": "/headers/x-ms-proposed-lease-id",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "66666666-7777-8888-9999-000000000000"
- }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "LeaseAlreadyPresent"
+ "etag": "\"fixture-a8581b642c5f\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "LeaseAlreadyPresentFixture error"
+ "encoding": "base64",
+ "data": "c2FtZXNhbWU="
}
}
}
@@ -28033,42 +58230,66 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 409
+ "value": "\"fixture-a8581b642c5f\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "LeaseAlreadyPresent"
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2FtZXNhbWU="
}
}
],
"refusal": null
},
{
- "id": "operations/azure/lease-acquire",
- "profile": "azure",
+ "id": "operations/azure-hns/get-empty",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Acquire a lease on an object with a proposed lease ID",
+ "purpose": "get empty",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "action": "acquire",
- "duration": 15,
- "key": "object-tests/leases/object.txt",
- "op": "azure.lease",
- "proposed_lease_id": "11111111-2222-3333-4444-555555555555"
+ "key": "object-tests/write/empty.bin",
+ "op": "get"
},
"exchanges": [
{
@@ -28080,7 +58301,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -28088,7 +58309,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "/fixture/object-tests/write/empty.bin"
}
},
{
@@ -28098,54 +58319,29 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "lease"
- }
- },
- {
- "at": "/headers/x-ms-lease-action",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "acquire"
- }
- },
- {
- "at": "/headers/x-ms-lease-duration",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "15"
- }
- },
- {
- "at": "/headers/x-ms-proposed-lease-id",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "11111111-2222-3333-4444-555555555555"
- }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-md5": "1B2M2Y8AsgTpgAmY7PhCfg==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
+ "etag": "\"fixture-9373f0410116\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-id": "11111111-2222-3333-4444-555555555555"
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "empty"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -28162,30 +58358,73 @@
}
},
{
- "at": "/value/lease_id",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "11111111-2222-3333-4444-555555555555"
+ "value": "\"fixture-9373f0410116\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1B2M2Y8AsgTpgAmY7PhCfg=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-with-tags",
- "profile": "azure",
+ "id": "operations/azure-hns/get-range-of-empty-object",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Write an object with tags",
+ "purpose": "Report a range read of an empty object as 416 InvalidRange: no range of it can be satisfied, not even its first byte",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "Zmlyc3Q=",
- "key": "object-tests/tags/object.txt",
- "op": "put",
- "tags": {
- "project": "object-tests"
+ "key": "object-tests/write/empty.bin",
+ "op": "get",
+ "range": {
+ "end": 1,
+ "start": 0
}
},
"exchanges": [
@@ -28198,7 +58437,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -28206,7 +58445,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/tags/object.txt"
+ "value": "/fixture/object-tests/write/empty.bin"
}
},
{
@@ -28214,73 +58453,36 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "Zmlyc3Q="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
},
{
- "at": "/headers/x-ms-tags",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "project=object-tests"
+ "value": "bytes=0-0"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 416,
"headers": {
+ "content-range": "bytes */0",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-error-code": "InvalidRange"
},
"body": {
- "encoding": "empty"
+ "encoding": "utf8",
+ "data": "InvalidRangeFixture error"
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/get-tags",
- "profile": "azure",
- "lane": "core",
- "purpose": "Read the tags of an object",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-tags"
- ],
- "call": {
- "key": "object-tests/tags/object.txt",
- "op": "azure.get_tags"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -28296,7 +58498,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/tags/object.txt"
+ "value": "/fixture/object-tests/write/empty.bin"
}
},
{
@@ -28308,27 +58510,29 @@
}
},
{
- "at": "/query/comp",
+ "at": "/headers/x-ms-range",
"optional": false,
"rule": {
"is": "equal",
- "value": "tags"
+ "value": "bytes=0-0"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 416,
"headers": {
+ "content-range": "bytes */0",
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "x-ms-error-code": "InvalidRange"
},
"body": {
"encoding": "utf8",
- "data": "projectobject-tests"
+ "data": "InvalidRangeFixture error"
}
}
}
@@ -28341,36 +58545,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/tags",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "project": "object-tests"
- }
+ "value": 416
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidRange"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/set-tags",
- "profile": "azure",
+ "id": "operations/azure-hns/get-if-match-current",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Replace the tags of an object",
+ "purpose": "get if match current",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/tags/object.txt",
- "op": "azure.set_tags",
- "tags": {
- "project": "object-tests"
- }
+ "if_match": "\"fixture-5295cdfd25ff\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -28382,7 +58590,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -28390,48 +58598,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/tags/object.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "projectobject-tests"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "tags"
+ "value": ""
}
},
{
- "at": "/headers/content-type",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/xml; charset=UTF-8"
- ]
+ "is": "equal",
+ "value": "\"fixture-5295cdfd25ff\""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 200,
"headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-5295cdfd25ff\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "empty"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -28446,23 +58653,73 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-5295cdfd25ff\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure/put-with-tier",
- "profile": "azure",
+ "id": "operations/azure-hns/get-if-none-match-other",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Write an object straight into the Cool access tier",
+ "purpose": "get if none match other",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "Zmlyc3Q=",
- "key": "object-tests/tiers/object.txt",
- "op": "put",
- "tier": "Cool"
+ "if_none_match": "\"fixture-088e5dc109cf\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -28474,7 +58731,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -28482,7 +58739,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/tiers/object.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -28490,40 +58747,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "Zmlyc3Q="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
},
{
- "at": "/headers/x-ms-access-tier",
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "Cool"
+ "value": "\"fixture-088e5dc109cf\""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "empty"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -28532,28 +58788,78 @@
],
"expect": [
{
- "at": "/outcome",
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-5295cdfd25ff\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/set-tier-unknown",
- "profile": "azure",
+ "id": "operations/azure-hns/get-key-with-hash",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Refuse an access tier the service does not have",
+ "purpose": "get key with hash",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tier"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/tiers/object.txt",
- "op": "azure.set_tier",
- "tier": "Warm"
+ "key": "object-tests/names/hash#tag.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -28565,7 +58871,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -28573,7 +58879,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/tiers/object.txt"
+ "value": "/fixture/object-tests/names/hash#tag.txt"
}
},
{
@@ -28583,38 +58889,29 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "tier"
- }
- },
- {
- "at": "/headers/x-ms-access-tier",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Warm"
- }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidHeaderValue"
+ "etag": "\"fixture-ed49e7da63af\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidHeaderValueFixture error"
+ "encoding": "base64",
+ "data": "MQ=="
}
}
}
@@ -28627,40 +58924,74 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "\"fixture-ed49e7da63af\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidHeaderValue"
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
}
}
],
"refusal": null
},
{
- "id": "operations/azure/set-tier-cool",
- "profile": "azure",
+ "id": "operations/azure-hns/get-key-with-percent",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Move an object to the Cool access tier",
+ "purpose": "get key with percent",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tier"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/tiers/object.txt",
- "op": "azure.set_tier",
- "tier": "Cool"
+ "key": "object-tests/names/percent%20.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -28672,7 +59003,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -28680,7 +59011,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/tiers/object.txt"
+ "value": "/fixture/object-tests/names/percent%20.txt"
}
},
{
@@ -28690,22 +59021,6 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "tier"
- }
- },
- {
- "at": "/headers/x-ms-access-tier",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Cool"
- }
}
],
"allow_headers": [],
@@ -28713,12 +59028,22 @@
"response": {
"status": 200,
"headers": {
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-c4ca668cf15e\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "empty"
+ "encoding": "base64",
+ "data": "MQ=="
}
}
}
@@ -28733,24 +59058,72 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-c4ca668cf15e\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure/put-internal-error",
- "profile": "azure",
+ "id": "operations/azure-hns/get-key-with-plus",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Report a 500 InternalError answer as an error, after at most 5 retries",
+ "purpose": "get key with plus",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
- "origin": "transient",
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object-tests/names/plus+plus.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -28762,7 +59135,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -28770,7 +59143,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/names/plus+plus.txt"
}
},
{
@@ -28778,157 +59151,113 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InternalError"
+ "etag": "\"fixture-f09c0f273191\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "InternalErrorThe server encountered an internal error. Please retry the request."
+ "encoding": "base64",
+ "data": "MQ=="
}
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
},
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 500,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "InternalError"
- },
- "body": {
- "encoding": "utf8",
- "data": "InternalErrorThe server encountered an internal error. Please retry the request."
- }
- }
- }
- ],
- "optional": true
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-f09c0f273191\""
+ }
},
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 500,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "InternalError"
- },
- "body": {
- "encoding": "utf8",
- "data": "InternalErrorThe server encountered an internal error. Please retry the request."
- }
- }
- }
- ],
- "optional": true
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
},
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/get-key-with-space",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "get key space",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ ],
+ "call": {
+ "key": "a b",
+ "op": "get"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -28938,7 +59267,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -28946,7 +59275,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/a b"
}
},
{
@@ -28954,40 +59283,72 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InternalError"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
},
"body": {
- "encoding": "utf8",
- "data": "InternalErrorThe server encountered an internal error. Please retry the request."
+ "encoding": "base64",
+ "data": "aGVsbG8="
}
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
},
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aGVsbG8="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/get-key-with-question",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "get key question",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ ],
+ "call": {
+ "key": "a?b",
+ "op": "get"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -28997,7 +59358,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -29005,7 +59366,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/a?b"
}
},
{
@@ -29013,40 +59374,72 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InternalError"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
},
"body": {
- "encoding": "utf8",
- "data": "InternalErrorThe server encountered an internal error. Please retry the request."
+ "encoding": "base64",
+ "data": "aGVsbG8="
}
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
},
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aGVsbG8="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/get-key-with-non-ascii",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "get key unicode",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ ],
+ "call": {
+ "key": "café/雪",
+ "op": "get"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -29056,7 +59449,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -29064,7 +59457,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/café/雪"
}
},
{
@@ -29072,39 +59465,37 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InternalError"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
},
"body": {
- "encoding": "utf8",
- "data": "InternalErrorThe server encountered an internal error. Please retry the request."
+ "encoding": "base64",
+ "data": "aGVsbG8="
}
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -29113,41 +59504,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 500
+ "value": "ok"
}
},
{
- "at": "/code",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "InternalError"
+ "value": "aGVsbG8="
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-if-unmodified-since-past",
- "profile": "azure",
+ "id": "operations/azure-hns/get-key-with-separators",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Refuse a write with 412 when the object changed after If-Unmodified-Since",
+ "purpose": "get key separators",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "a//b/",
+ "op": "get"
},
"exchanges": [
{
@@ -29159,7 +59540,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -29167,7 +59548,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/a//b/"
}
},
{
@@ -29175,42 +59556,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
- }
- },
- {
- "at": "/headers/if-unmodified-since",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ConditionNotMet"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
"encoding": "utf8",
- "data": "ConditionNotMetFixture error"
+ "data": "BlobNotFoundFixture error"
}
}
}
@@ -29231,7 +59594,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": 404
}
},
{
@@ -29239,25 +59602,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": "BlobNotFound"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-content-encoding-gzip",
- "profile": "azure",
+ "id": "operations/azure-hns/get-metadata-empty-value",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged",
+ "purpose": "get metadata empty value",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA",
- "content_encoding": "gzip",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object-tests/metadata/empty-value.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -29269,73 +59630,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
- }
- },
- {
- "at": "/headers/x-ms-blob-content-encoding",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "gzip"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 201,
- "headers": {
- "content-md5": "CVsDGvNMZH4SPA4MSLswrA==",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-b9991ef94e3d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -29343,7 +59638,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/metadata/empty-value.txt"
}
},
{
@@ -29351,46 +59646,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
- }
- },
- {
- "at": "/headers/content-encoding",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "gzip"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "CVsDGvNMZH4SPA4MSLswrA==",
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-b9991ef94e3d\"",
+ "etag": "\"fixture-18852ad86043\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-meta-empty": "",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
}
@@ -29411,36 +59692,77 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-b9991ef94e3d\""
+ "value": "\"fixture-18852ad86043\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
}
},
{
"at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2084665Z"
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "empty": ""
+ }
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-content-properties",
- "profile": "azure",
+ "id": "operations/azure-hns/get-metadata-of-snapshot",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write",
+ "purpose": "get metadata of snapshot",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "cache_control": "max-age=3600",
- "content_disposition": "attachment; filename=\"report.txt\"",
- "content_language": "nl-NL",
- "content_type": "text/plain; charset=utf-8",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object-tests/metadata/snapshotted.txt",
+ "op": "get",
+ "snapshot": "2024-01-01T00:00:00.1577201Z"
},
"exchanges": [
{
@@ -29452,97 +59774,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
- }
- },
- {
- "at": "/headers/x-ms-blob-content-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "text/plain; charset=utf-8"
- }
- },
- {
- "at": "/headers/x-ms-blob-content-language",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "nl-NL"
- }
- },
- {
- "at": "/headers/x-ms-blob-content-disposition",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "attachment; filename=\"report.txt\""
- }
- },
- {
- "at": "/headers/x-ms-blob-cache-control",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "max-age=3600"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 201,
- "headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-b9991ef94e3d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -29550,7 +59782,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/metadata/snapshotted.txt"
}
},
{
@@ -29558,70 +59790,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
- }
- },
- {
- "at": "/headers/content-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "text/plain; charset=utf-8"
- }
- },
- {
- "at": "/headers/content-language",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "nl-NL"
- }
- },
- {
- "at": "/headers/x-ms-blob-content-disposition",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "attachment; filename=\"report.txt\""
+ "value": ""
}
},
{
- "at": "/headers/cache-control",
+ "at": "/query/snapshot",
"optional": false,
"rule": {
"is": "equal",
- "value": "max-age=3600"
+ "value": "2024-01-01T00:00:00.1577201Z"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 404,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-b9991ef94e3d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2084665Z"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
}
}
}
@@ -29634,40 +59828,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-b9991ef94e3d\""
+ "value": 404
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2084665Z"
+ "value": "BlobNotFound"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-first-version",
- "profile": "azure",
+ "id": "operations/azure-hns/get-metadata-replaced",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put first version",
+ "purpose": "get metadata replaced",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "djE=",
- "key": "object-tests/versions-mtydohr2/object.txt",
- "op": "put"
+ "key": "object-tests/metadata/replaced.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -29679,7 +59872,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -29687,7 +59880,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
+ "value": "/fixture/object-tests/metadata/replaced.txt"
}
},
{
@@ -29695,38 +59888,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "djE="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==",
+ "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-5769a0807b46\"",
+ "etag": "\"fixture-c24dabf9e117\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2318906Z"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "Mg=="
}
}
}
@@ -29747,33 +59933,66 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5769a0807b46\""
+ "value": "\"fixture-c24dabf9e117\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "yB5yjZ1ML2NvBn+JzBSGLA=="
}
},
{
"at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2318906Z"
+ "value": "Mg=="
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-if-match-current",
- "profile": "azure",
+ "id": "operations/azure-hns/get-metadata",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put if match current",
+ "purpose": "get metadata",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "cmVwbGFjZWQ=",
- "if_match": "\"fixture-b9991ef94e3d\"",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object-tests/metadata/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -29785,7 +60004,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -29793,7 +60012,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/metadata/object.txt"
}
},
{
@@ -29801,46 +60020,33 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "cmVwbGFjZWQ="
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-b9991ef94e3d\""
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "kbskg1kEP+mEFuJZyb3xDQ==",
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-3e075954b24b\"",
+ "etag": "\"fixture-4d04dba3441e\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.3814952Z"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-meta-name": "value",
+ "x-ms-meta-second": "2",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
}
@@ -29861,33 +60067,77 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-3e075954b24b\""
+ "value": "\"fixture-4d04dba3441e\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
}
},
{
"at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.3814952Z"
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "name": "value",
+ "second": "2"
+ }
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-if-none-match-missing",
- "profile": "azure",
+ "id": "operations/azure-hns/get-metadata-ignores-unknown-headers",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put if none match missing",
+ "purpose": "Surface user metadata; unknown headers must not become metadata.",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
],
"call": {
- "body_base64": "ZnJlc2g=",
- "if_none_match": "*",
- "key": "object-tests/write/fresh.txt",
- "op": "put"
+ "key": "object",
+ "op": "get"
},
"exchanges": [
{
@@ -29899,7 +60149,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -29907,7 +60157,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/fresh.txt"
+ "value": "/fixture/object"
}
},
{
@@ -29915,46 +60165,35 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ZnJlc2g="
- }
- },
- {
- "at": "/headers/if-none-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "*"
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "dgEIWMg2LXMC71+UNqpmOQ==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-0445b9b5a1dd\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-meta-author": "Ada",
+ "x-ms-request-id": "fixture-request-id",
"x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2457093Z"
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03",
+ "x-unrelated": "not metadata"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "aGVsbG8="
}
}
}
@@ -29971,36 +60210,37 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-0445b9b5a1dd\""
+ "value": "aGVsbG8="
}
},
{
- "at": "/value/version",
+ "at": "/value/metadata",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2457093Z"
+ "value": {
+ "author": "Ada"
+ }
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-key-1024",
- "profile": "azure",
+ "id": "operations/azure-hns/get-missing",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put key 1024",
+ "purpose": "get missing. A client reports it as not_found: the object is absent",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
- "op": "put"
+ "key": "object-tests/read/absent.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -30012,7 +60252,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -30020,7 +60260,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
+ "value": "/fixture/object-tests/read/absent.txt"
}
},
{
@@ -30028,38 +60268,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 404,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-cf057aba568d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.8738118Z"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
}
}
}
@@ -30072,40 +60298,50 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-cf057aba568d\""
+ "value": 404
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.8738118Z"
+ "value": "BlobNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "not_found"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-key-1025",
- "profile": "azure",
+ "id": "operations/azure-hns/get-missing-code-in-body",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put key 1025",
+ "purpose": "get missing, with the error code only in the XML body. A client reports it as not_found: the object is absent",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
],
+ "origin": "constructed",
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
- "op": "put"
+ "key": "object-tests/read/absent.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -30117,7 +60353,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -30125,7 +60361,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
+ "value": "/fixture/object-tests/read/absent.txt"
}
},
{
@@ -30133,34 +60369,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "OutOfRangeInput"
+ }
},
"body": {
"encoding": "utf8",
- "data": "OutOfRangeInputFixture error"
+ "data": "BlobNotFoundFixture error"
}
}
}
@@ -30181,7 +60406,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": 404
}
},
{
@@ -30189,65 +60414,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "OutOfRangeInput"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
+ "value": "BlobNotFound"
}
},
{
"at": "/kind",
"optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "key"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
"rule": {
"is": "equal",
- "value": "OutOfRangeInput"
+ "value": "not_found"
}
}
- ]
+ ],
+ "refusal": null
},
{
- "id": "operations/azure/put-key-under-object",
- "profile": "azure",
+ "id": "operations/azure-hns/get-not-modified",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put key under object",
+ "purpose": "get not modified",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/order/a/b",
- "op": "put"
+ "if_none_match": "\"fixture-5295cdfd25ff\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -30259,7 +60451,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -30267,7 +60459,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/order/a/b"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -30275,34 +60467,27 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "\"fixture-5295cdfd25ff\""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 304,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
"date": {
"from": "now"
},
- "etag": "\"fixture-17ced520f182\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.2584945Z"
+ "x-ms-error-code": "ConditionNotMet"
},
"body": {
"encoding": "base64",
@@ -30319,41 +60504,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-17ced520f182\""
+ "value": 304
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.2584945Z"
+ "value": "ConditionNotMet"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-lost-the-race-to-create",
- "profile": "azure",
+ "id": "operations/azure-hns/get-precondition-failed",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put lost the race to create",
+ "purpose": "get precondition failed",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "YW5vdGhlciBvYmplY3Q=",
- "if_none_match": "*",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "if_match": "\"fixture-088e5dc109cf\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -30365,7 +60549,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -30373,7 +60557,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -30381,42 +60565,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
- }
- },
- {
- "at": "/headers/if-none-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "*"
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "\"fixture-088e5dc109cf\""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobAlreadyExists"
+ "x-ms-error-code": "ConditionNotMet"
},
"body": {
"encoding": "utf8",
- "data": "BlobAlreadyExistsFixture error"
+ "data": "ConditionNotMetFixture error"
}
}
}
@@ -30437,7 +60611,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 409
+ "value": 412
}
},
{
@@ -30445,28 +60619,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobAlreadyExists"
+ "value": "ConditionNotMet"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-md5-mismatch",
- "profile": "azure",
+ "id": "operations/azure-hns/get-previous-version-of-deleted-object",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put md5 mismatch",
+ "purpose": "get previous version of deleted object",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "ZGVjbGFyZWQtYm9keQ==",
- "checksum": {
- "algorithm": "md5",
- "value_base64": "eV8yArF8trw9S3cdjGyerw=="
- },
- "key": "object-tests/hashes/md5-mismatch.txt",
- "op": "put"
+ "key": "object-tests/versions-mtypy4jp/deleted.txt",
+ "op": "get",
+ "version": "none-1"
},
"exchanges": [
{
@@ -30478,7 +60648,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -30486,7 +60656,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/hashes/md5-mismatch.txt"
+ "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt"
}
},
{
@@ -30494,29 +60664,19 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ZGVjbGFyZWQtYm9keQ=="
- }
- },
- {
- "at": "/headers/content-md5",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "eV8yArF8trw9S3cdjGyerw=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/query/versionid",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "none-1"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
"status": 400,
@@ -30524,12 +60684,11 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "Md5Mismatch"
+ }
},
"body": {
"encoding": "utf8",
- "data": "Md5MismatchFixture error"
+ "data": "InvalidQueryParameterValueFixture error"
}
}
}
@@ -30558,27 +60717,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "Md5Mismatch"
+ "value": "InvalidQueryParameterValue"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-metadata-empty-value",
- "profile": "azure",
+ "id": "operations/azure-hns/get-previous-version",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put metadata empty value",
+ "purpose": "get previous version",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/empty-value.txt",
- "metadata": {
- "empty": ""
- },
- "op": "put"
+ "key": "object-tests/versions-mtypy4jp/object.txt",
+ "op": "get",
+ "version": "none-1"
},
"exchanges": [
{
@@ -30590,7 +60746,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -30598,54 +60754,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/empty-value.txt"
+ "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
}
},
{
"at": "/body_base64",
"optional": false,
- "rule": {
- "is": "equal",
- "value": "MQ=="
- }
- },
- {
- "at": "/headers/x-ms-meta-empty",
- "optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/query/versionid",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "none-1"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 400,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-333d95b64818\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.9480929Z"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "InvalidQueryParameterValueFixture error"
}
}
}
@@ -30658,43 +60799,43 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-333d95b64818\""
+ "value": 400
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.9480929Z"
+ "value": "InvalidQueryParameterValue"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-metadata-invalid-name",
- "profile": "azure",
+ "id": "operations/azure-hns/get-range-inverted",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put metadata invalid name",
+ "purpose": "get range inverted",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/invalid-name.txt",
- "metadata": {
- "not-valid": "1"
- },
- "op": "put"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 2,
+ "start": 6
+ }
},
"exchanges": [
{
@@ -30706,7 +60847,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -30714,7 +60855,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/invalid-name.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -30722,42 +60863,98 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-meta-not-valid",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "bytes=6-1"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-5295cdfd25ff\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=6-1"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidMetadata"
+ "etag": "\"fixture-5295cdfd25ff\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidMetadataFixture error"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -30770,81 +60967,104 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "\"fixture-5295cdfd25ff\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidMetadata"
+ "value": 30
}
- }
- ],
- "refusal": [
+ },
{
- "at": "/outcome",
+ "at": "/value/content_type",
"optional": false,
"rule": {
"is": "equal",
- "value": "refused"
+ "value": "application/octet-stream"
}
},
{
- "at": "/kind",
+ "at": "/value/content_md5_base64",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": ".+"
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
}
},
{
- "at": "/parameter",
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "metadata"
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/status",
- "optional": true,
+ "at": "/outcome",
+ "optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "refused"
}
},
{
- "at": "/code",
- "optional": true,
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
"rule": {
"is": "equal",
- "value": "InvalidMetadata"
+ "value": "range"
}
}
- ]
+ ],
+ "decline_permitted": true
},
{
- "id": "operations/azure/put-metadata-replaced",
- "profile": "azure",
+ "id": "operations/azure-hns/get-range-empty",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put metadata replaced",
+ "purpose": "Read a range of no bytes, whose start equals its end. HTTP has no form for it: bytes=5-4 is inverted, and the service ignores it and sends the whole object. A client may refuse it instead",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "Mg==",
- "key": "object-tests/metadata/replaced.txt",
- "op": "put"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 5,
+ "start": 5
+ }
},
"exchanges": [
{
@@ -30856,7 +61076,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -30864,7 +61084,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/replaced.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -30872,92 +61092,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "Mg=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "bytes=5-4"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-37b036d8c13f\"",
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7487600Z"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-37b036d8c13f\""
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.7487600Z"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/put-metadata",
- "profile": "azure",
- "lane": "core",
- "purpose": "put metadata",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/object.txt",
- "metadata": {
- "name": "value",
- "second": "2"
- },
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -30965,7 +61135,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -30973,7 +61143,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/object.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -30981,54 +61151,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
- }
- },
- {
- "at": "/headers/x-ms-meta-name",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "value"
- }
- },
- {
- "at": "/headers/x-ms-meta-second",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/x-ms-range",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "bytes=5-4"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-9abbc5e374ca\"",
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7035036Z"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -31049,35 +61204,95 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-9abbc5e374ca\""
+ "value": "\"fixture-5295cdfd25ff\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
}
},
{
"at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7035036Z"
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "range"
+ }
+ }
+ ],
+ "decline_permitted": true
},
{
- "id": "operations/azure/put-metadata-identifier-name",
- "profile": "azure",
+ "id": "operations/azure-hns/get-range-not-satisfiable",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "An Azure metadata name must be a C# identifier, which may start with an underscore and hold digits. Send _a1; only a name that is no identifier may be refused.",
+ "purpose": "get range not satisfiable",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/identifier-name.txt",
- "metadata": {
- "_a1": "1"
- },
- "op": "put"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "start": 40
+ }
},
"exchanges": [
{
@@ -31089,7 +61304,60 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=40-"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 416,
+ "headers": {
+ "content-range": "bytes */30",
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidRange"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidRangeFixture error"
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
}
},
{
@@ -31097,7 +61365,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/identifier-name.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -31105,46 +61373,33 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
- }
- },
- {
- "at": "/headers/x-ms-meta-_a1",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1"
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/x-ms-range",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "bytes=40-"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 416,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-range": "bytes */30",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-9abbc5e374ca\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7035036Z"
+ "x-ms-error-code": "InvalidRange"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "InvalidRangeFixture error"
}
}
}
@@ -31157,40 +61412,43 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-9abbc5e374ca\""
+ "value": 416
}
},
{
- "at": "/value/version",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7035036Z"
+ "value": "InvalidRange"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-over-snapshotted",
- "profile": "azure",
+ "id": "operations/azure-hns/get-range-past-the-end",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put over snapshotted",
+ "purpose": "Read a range that ends past the object, which the service clips to the object's end. Report the window it served from Content-Range, bytes 28-29/30, so that the caller sees the range was clipped",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "dHdv",
- "key": "object-tests/snapshots/object.txt",
- "op": "put"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 64,
+ "start": 28
+ }
},
"exchanges": [
{
@@ -31202,7 +61460,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -31210,7 +61468,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -31218,88 +61476,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "dHdv"
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "bytes=28-63"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "uKn3Fdu2T9XFbneDxoIKYQ==",
+ "content-range": "bytes 28-29/30",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-937c89bb7b5c\"",
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.6268993Z"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "Y3Q="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-937c89bb7b5c\""
- }
- },
- {
- "at": "/value/version",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.6268993Z"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/put-overwrite",
- "profile": "azure",
- "lane": "core",
- "purpose": "put overwrite",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "body_base64": "b3ZlcndyaXR0ZW4=",
- "key": "object-tests/write/object.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -31307,7 +61519,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -31315,7 +61527,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -31323,38 +61535,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "b3ZlcndyaXR0ZW4="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/x-ms-range",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "bytes=28-63"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "UJ/0v/8wp3EDqsNAaOpGxw==",
+ "content-range": "bytes 28-29/30",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-cf4724500964\"",
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7758823Z"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "Y3Q="
}
}
}
@@ -31375,33 +61588,70 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-cf4724500964\""
+ "value": "\"fixture-5295cdfd25ff\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
}
},
{
"at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7758823Z"
+ "value": "Y3Q="
+ }
+ },
+ {
+ "at": "/value/content_range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes 28-29/30"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-precondition-failed",
- "profile": "azure",
+ "id": "operations/azure-hns/get-range-single-byte",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put precondition failed",
+ "purpose": "get range single byte",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "YW5vdGhlciBvYmplY3Q=",
- "if_match": "\"fixture-088e5dc109cf\"",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 1,
+ "start": 0
+ }
},
"exchanges": [
{
@@ -31413,7 +61663,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -31421,7 +61671,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -31429,96 +61679,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-088e5dc109cf\""
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "bytes=0-0"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-0/30",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "ConditionNotMet"
+ "etag": "\"fixture-5295cdfd25ff\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "ConditionNotMetFixture error"
+ "encoding": "base64",
+ "data": "MA=="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ConditionNotMet"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/put-precondition-failed-code-in-body",
- "profile": "azure",
- "lane": "core",
- "purpose": "put precondition failed, with the error code only in the XML body",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
- ],
- "origin": "constructed",
- "call": {
- "body_base64": "YW5vdGhlciBvYmplY3Q=",
- "if_match": "\"fixture-088e5dc109cf\"",
- "key": "object-tests/write/object.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -31526,7 +61722,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -31534,7 +61730,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -31542,41 +61738,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-088e5dc109cf\""
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/x-ms-range",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "bytes=0-0"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-0/30",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-5295cdfd25ff\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "ConditionNotMetFixture error"
+ "encoding": "base64",
+ "data": "MA=="
}
}
}
@@ -31589,40 +61783,70 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": "\"fixture-5295cdfd25ff\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MA=="
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-refused",
- "profile": "azure",
+ "id": "operations/azure-hns/get-range",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "purpose": "get range",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
- "key": "object.txt",
- "op": "put"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 6,
+ "start": 2
+ }
},
"exchanges": [
{
@@ -31634,7 +61858,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -31642,7 +61866,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -31650,84 +61874,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "bm90aGluZyBpcyBzdG9yZWQ="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "bytes=2-5"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 403,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 2-5/30",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "AuthorizationPermissionMismatch"
+ "etag": "\"fixture-5295cdfd25ff\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "AuthorizationPermissionMismatchFixture error"
+ "encoding": "base64",
+ "data": "MjM0NQ=="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 403
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "AuthorizationPermissionMismatch"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/put-second-version",
- "profile": "azure",
- "lane": "core",
- "purpose": "put second version",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "body_base64": "djI=",
- "key": "object-tests/versions-mtydohr2/object.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -31735,7 +61917,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -31743,7 +61925,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/versions-mtydohr2/object.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -31751,38 +61933,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "djI="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/x-ms-range",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "bytes=2-5"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==",
+ "content-range": "bytes 2-5/30",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-4768de772705\"",
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.3326281Z"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MjM0NQ=="
}
}
}
@@ -31803,32 +61986,61 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-4768de772705\""
+ "value": "\"fixture-5295cdfd25ff\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 4
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
}
},
{
"at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.3326281Z"
+ "value": "MjM0NQ=="
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-unauthenticated",
- "profile": "azure",
+ "id": "operations/azure-hns/get-range-open",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "purpose": "get range open",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
],
"call": {
- "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object",
+ "op": "get",
+ "range": {
+ "start": 3
+ }
},
"exchanges": [
{
@@ -31840,7 +62052,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -31848,7 +62060,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object"
}
},
{
@@ -31856,88 +62068,45 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "bm90aGluZyBpcyBzdG9yZWQ="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "bytes=3-"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 401,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 3-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidAuthenticationInfo"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidAuthenticationInfoFixture error"
+ "encoding": "base64",
+ "data": "bG8="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 401
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidAuthenticationInfo"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/put-with-crc64",
- "profile": "azure",
- "lane": "core",
- "purpose": "put with crc64",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "body_base64": "ZGVjbGFyZWQtYm9keQ==",
- "checksum": {
- "algorithm": "azure_crc64",
- "value_base64": "9XBvAwWoR9o="
- },
- "key": "object-tests/hashes/crc64.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -31945,7 +62114,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -31953,7 +62122,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/hashes/crc64.txt"
+ "value": "/fixture/object"
}
},
{
@@ -31961,46 +62130,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ZGVjbGFyZWQtYm9keQ=="
- }
- },
- {
- "at": "/headers/x-ms-content-crc64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "9XBvAwWoR9o="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/x-ms-range",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "bytes=3-"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
+ "content-range": "bytes 3-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-90cfcb93036b\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
"x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.1153123Z"
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "bG8="
}
}
}
@@ -32017,40 +62182,27 @@
}
},
{
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-90cfcb93036b\""
- }
- },
- {
- "at": "/value/version",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.1153123Z"
+ "value": "bG8="
}
}
],
"refusal": null
},
{
- "id": "operations/azure/put-with-md5",
- "profile": "azure",
+ "id": "operations/azure-hns/get-reordered",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "put with md5",
+ "purpose": "get reordered",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "body_base64": "ZGVjbGFyZWQtYm9keQ==",
- "checksum": {
- "algorithm": "md5",
- "value_base64": "N6YZkbg+Lyfxtskwn8iRCg=="
- },
- "key": "object-tests/hashes/md5.txt",
- "op": "put"
+ "key": "object-tests/multipart/reordered.bin",
+ "op": "get"
},
"exchanges": [
{
@@ -32062,7 +62214,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -32070,7 +62222,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/hashes/md5.txt"
+ "value": "/fixture/object-tests/multipart/reordered.bin"
}
},
{
@@ -32078,46 +62230,30 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ZGVjbGFyZWQtYm9keQ=="
- }
- },
- {
- "at": "/headers/content-md5",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "N6YZkbg+Lyfxtskwn8iRCg=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-494ad7275bf7\"",
+ "etag": "\"fixture-446301cfeaef\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true",
- "x-ms-version-id": "2024-01-01T00:00:00.7803759Z"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "c2Vjb25kZmlyc3Q="
}
}
}
@@ -32138,31 +62274,58 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-494ad7275bf7\""
+ "value": "\"fixture-446301cfeaef\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 11
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
}
},
{
"at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7803759Z"
+ "value": "c2Vjb25kZmlyc3Q="
}
}
],
"refusal": null
},
{
- "id": "operations/azure/snapshot",
- "profile": "azure",
+ "id": "operations/azure-hns/get-replacement",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "snapshot",
+ "purpose": "get replacement",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/snapshots/object.txt",
- "op": "azure.snapshot"
+ "key": "object-tests/multipart/replaced.bin",
+ "op": "get"
},
"exchanges": [
{
@@ -32174,7 +62337,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -32182,7 +62345,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
+ "value": "/fixture/object-tests/multipart/replaced.bin"
}
},
{
@@ -32192,36 +62355,28 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "snapshot"
- }
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-e3698635ab53\"",
+ "etag": "\"fixture-9c5e55ff559c\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "false",
- "x-ms-snapshot": "2024-01-01T00:00:00.7351568Z",
- "x-ms-version-id": "2024-01-01T00:00:00.8746441Z"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "RklSU1Q="
}
}
}
@@ -32238,29 +62393,63 @@
}
},
{
- "at": "/value/snapshot",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "2024-01-01T00:00:00.7351568Z"
+ "value": "\"fixture-9c5e55ff559c\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 5
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "RklSU1Q="
}
}
],
"refusal": null
},
{
- "id": "operations/azure/stage-empty",
- "profile": "azure",
+ "id": "operations/azure-hns/get-snapshot",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "stage empty",
+ "purpose": "get snapshot",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "block_id_base64": "MDAwMDAz",
- "body_base64": "",
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.stage_block"
+ "key": "object-tests/snapshots/object.txt",
+ "op": "get",
+ "snapshot": "2024-01-01T00:00:00.1577201Z"
},
"exchanges": [
{
@@ -32272,7 +62461,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -32280,7 +62469,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/snapshots/object.txt"
}
},
{
@@ -32292,38 +62481,28 @@
}
},
{
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
- }
- },
- {
- "at": "/query/blockid",
+ "at": "/query/snapshot",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAz"
+ "value": "2024-01-01T00:00:00.1577201Z"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidHeaderValue"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
"encoding": "utf8",
- "data": "InvalidHeaderValueFixture error"
+ "data": "BlobNotFoundFixture error"
}
}
}
@@ -32344,7 +62523,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": 404
}
},
{
@@ -32352,25 +62531,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidHeaderValue"
+ "value": "BlobNotFound"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/stage-escaped-id",
- "profile": "azure",
+ "id": "operations/azure-hns/get-staged-only",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "stage escaped id",
+ "purpose": "get staged only",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "block_id_base64": "+/8=",
- "body_base64": "b25l",
- "key": "object-tests/multipart/escaped.bin",
- "op": "azure.stage_block"
+ "key": "object-tests/multipart/staged.bin",
+ "op": "get"
},
"exchanges": [
{
@@ -32382,7 +62559,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -32390,7 +62567,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/escaped.bin"
+ "value": "/fixture/object-tests/multipart/staged.bin"
}
},
{
@@ -32398,43 +62575,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "b25l"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
- }
- },
- {
- "at": "/query/blockid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "+/8="
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 404,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
}
}
}
@@ -32447,36 +62605,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
- "optional": true,
+ "at": "/status",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/stage-id-too-long",
- "profile": "azure",
+ "id": "operations/azure-hns/get-suffix-longer-than-object",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "stage id too long",
+ "purpose": "get suffix longer than object",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "block_id_base64": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg=",
- "body_base64": "dGhpcmQ=",
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.stage_block"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "suffix": 100
+ }
},
"exchanges": [
{
@@ -32484,62 +62648,118 @@
{
"request": [
{
- "at": "/method",
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": ""
}
},
{
- "at": "/path",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "bytes=-100"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-5295cdfd25ff\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
}
},
{
- "at": "/body_base64",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "dGhpcmQ="
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "block"
+ "value": ""
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/x-ms-range",
"optional": false,
"rule": {
"is": "equal",
- "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg="
+ "value": "bytes=-100"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "OutOfRangeInput"
+ "etag": "\"fixture-5295cdfd25ff\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "OutOfRangeInputBlock ID exceeds 64 decoded bytes."
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -32552,82 +62772,103 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "\"fixture-5295cdfd25ff\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "OutOfRangeInput"
+ "value": 30
}
- }
- ],
- "refusal": [
+ },
{
- "at": "/outcome",
+ "at": "/value/content_type",
"optional": false,
"rule": {
"is": "equal",
- "value": "refused"
+ "value": "application/octet-stream"
}
},
{
- "at": "/kind",
+ "at": "/value/content_md5_base64",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": ".+"
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
}
},
{
- "at": "/parameter",
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "block_id_base64"
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/status",
- "optional": true,
+ "at": "/outcome",
+ "optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "refused"
}
},
{
- "at": "/code",
- "optional": true,
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
"rule": {
"is": "equal",
- "value": "OutOfRangeInput"
+ "value": "range"
}
}
- ]
+ ],
+ "decline_permitted": true
},
{
- "id": "operations/azure/stage-mixed-length-id",
- "profile": "azure",
+ "id": "operations/azure-hns/get-suffix",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "stage mixed length id",
+ "purpose": "get suffix",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy",
- "body_base64": "dGhpcmQ=",
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.stage_block"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "suffix": 6
+ }
},
"exchanges": [
{
@@ -32639,7 +62880,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -32647,7 +62888,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -32655,96 +62896,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "dGhpcmQ="
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
+ "value": ""
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy"
+ "value": "bytes=-6"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidBlobOrBlock"
+ "etag": "\"fixture-5295cdfd25ff\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidBlobOrBlockFixture error"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidBlobOrBlock"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/stage-mixed-length-id-code-in-body",
- "profile": "azure",
- "lane": "core",
- "purpose": "stage mixed length id, with the error code only in the XML body",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
- ],
- "origin": "constructed",
- "call": {
- "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy",
- "body_base64": "dGhpcmQ=",
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.stage_block"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -32752,7 +62939,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -32760,7 +62947,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -32768,41 +62955,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "dGhpcmQ="
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
+ "value": ""
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/x-ms-range",
"optional": false,
"rule": {
"is": "equal",
- "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy"
+ "value": "bytes=-6"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-5295cdfd25ff\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidBlobOrBlockFixture error"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -32815,41 +63000,100 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "\"fixture-5295cdfd25ff\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidBlobOrBlock"
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "range"
+ }
+ }
+ ],
+ "decline_permitted": true
},
{
- "id": "operations/azure/stage-unauthenticated",
- "profile": "azure",
+ "id": "operations/azure-hns/get-unauthenticated",
+ "profile": "azure-hns",
"lane": "core",
"purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "block_id_base64": "MDAwMDAx",
- "body_base64": "Zmlyc3Q=",
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.stage_block"
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -32861,7 +63105,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -32869,7 +63113,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -32877,29 +63121,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "Zmlyc3Q="
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
- }
- },
- {
- "at": "/query/blockid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDAwMDAx"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
"status": 401,
@@ -32948,18 +63174,17 @@
"refusal": null
},
{
- "id": "operations/azure/stage",
- "profile": "azure",
+ "id": "operations/azure-hns/get-unknown-snapshot",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "stage",
+ "purpose": "get unknown snapshot",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.stage_block"
+ "key": "object-tests/snapshots/object.txt",
+ "op": "get",
+ "snapshot": "2024-01-01T00:00:00.4364169Z"
},
"exchanges": [
{
@@ -32971,7 +63196,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -32979,7 +63204,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/snapshots/object.txt"
}
},
{
@@ -32987,43 +63212,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
+ "value": ""
}
},
{
- "at": "/query/blockid",
+ "at": "/query/snapshot",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": "2024-01-01T00:00:00.4364169Z"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 404,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
}
}
}
@@ -33036,36 +63250,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
- "optional": true,
+ "at": "/status",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/stage-id-64-bytes",
- "profile": "azure",
+ "id": "operations/azure-hns/get-unknown-version",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "A block ID decodes to at most 64 bytes, and Azure stages a block whose ID decodes to exactly 64. Send it; only a longer ID may be refused.",
+ "purpose": "get unknown version",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "block_id_base64": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.stage_block"
+ "key": "object-tests/versions-mtypy4jp/object.txt",
+ "op": "get",
+ "version": "2024-01-01T00:00:00.4364169Z"
},
"exchanges": [
{
@@ -33077,7 +63295,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -33085,7 +63303,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
}
},
{
@@ -33093,43 +63311,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
+ "value": ""
}
},
{
- "at": "/query/blockid",
+ "at": "/query/versionid",
"optional": false,
"rule": {
"is": "equal",
- "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA=="
+ "value": "2024-01-01T00:00:00.4364169Z"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 409,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error"
}
}
}
@@ -33142,36 +63349,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
- "optional": true,
+ "at": "/status",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 409
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/stage-key-question",
- "profile": "azure",
+ "id": "operations/azure-hns/get-whole",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "stage, with the key \"question?mark.txt\"",
+ "purpose": "get whole",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/question?mark.txt",
- "op": "azure.stage_block"
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -33183,7 +63393,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -33191,7 +63401,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/question?mark.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -33199,43 +63409,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
- }
- },
- {
- "at": "/query/blockid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDAwMDAy"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -33253,6 +63451,38 @@
},
{
"at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-5295cdfd25ff\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -33261,23 +63491,29 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure/stage-key-hash",
- "profile": "azure",
+ "id": "operations/azure-hns/get-xml-looking",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "stage, with the key \"hash#tag.txt\"",
+ "purpose": "get xml looking",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
],
"call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/hash#tag.txt",
- "op": "azure.stage_block"
+ "key": "object",
+ "op": "get"
},
"exchanges": [
{
@@ -33289,7 +63525,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -33297,7 +63533,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/hash#tag.txt"
+ "value": "/fixture/object"
}
},
{
@@ -33305,43 +63541,33 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
- }
- },
- {
- "at": "/query/blockid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDAwMDAy"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
}
}
}
@@ -33358,32 +63584,28 @@
}
},
{
- "at": "/value/etag",
- "optional": true,
+ "at": "/value/body_base64",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/stage-key-percent",
- "profile": "azure",
+ "id": "operations/azure-hns/get-noise-tolerance",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "stage, with the key \"percent%20.txt\"",
+ "purpose": "get noise tolerance",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
],
+ "origin": "constructed",
"call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/percent%20.txt",
- "op": "azure.stage_block"
+ "key": "object",
+ "op": "get"
},
"exchanges": [
{
@@ -33395,7 +63617,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -33403,7 +63625,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/percent%20.txt"
+ "value": "/fixture/object"
}
},
{
@@ -33411,43 +63633,34 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
- }
- },
- {
- "at": "/query/blockid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDAwMDAy"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"a-different-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-fixture-unknown": "ignored",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "another-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "aGVsbG8="
}
}
}
@@ -33464,32 +63677,29 @@
}
},
{
- "at": "/value/etag",
- "optional": true,
+ "at": "/value/body_base64",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "aGVsbG8="
}
}
],
"refusal": null
},
{
- "id": "operations/azure/stage-key-plus",
- "profile": "azure",
+ "id": "operations/azure-hns/get-body-cut-short",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "stage, with the key \"plus+plus.txt\"",
+ "purpose": "Report a body that ends before its Content-Length as an error, or resume it, but never return the short body",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://www.rfc-editor.org/rfc/rfc9112#section-8",
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_client.cpp"
],
+ "origin": "transient",
"call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/plus+plus.txt",
- "op": "azure.stage_block"
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -33501,7 +63711,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -33509,7 +63719,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/plus+plus.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -33517,87 +63727,37 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
- }
- },
- {
- "at": "/query/blockid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDAwMDAy"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": ""
- }
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ },
+ "truncate_body_after": 15
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
},
- {
- "at": "/value/etag",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/stage-key-space",
- "profile": "azure",
- "lane": "core",
- "purpose": "stage, with the key \"space name.txt\"",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/space name.txt",
- "op": "azure.stage_block"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -33607,7 +63767,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -33615,7 +63775,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/space name.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -33623,23 +63783,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
- }
- },
- {
- "at": "/query/blockid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDAwMDAy"
+ "value": ""
}
}
],
@@ -33648,64 +63792,27 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/stage-key-non-ascii",
- "profile": "azure",
- "lane": "core",
- "purpose": "stage, with the key \"café/雪.txt\"",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/café/雪.txt",
- "op": "azure.stage_block"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -33713,7 +63820,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -33721,7 +63828,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/café/雪.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -33729,89 +63836,50 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
+ "value": ""
}
},
{
- "at": "/query/comp",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "block"
+ "value": "bytes=15-"
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": "\"fixture-5295cdfd25ff\""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
+ "content-range": "bytes 15-29/30",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "Y3QtdGVzdHMtb2JqZWN0"
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/stage-key-double-slash",
- "profile": "azure",
- "lane": "core",
- "purpose": "stage, with the key \"double//slash.txt\"",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/double//slash.txt",
- "op": "azure.stage_block"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -33819,7 +63887,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -33827,7 +63895,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/double//slash.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -33835,47 +63903,52 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
+ "value": ""
}
},
{
- "at": "/query/comp",
+ "at": "/headers/x-ms-range",
"optional": false,
"rule": {
"is": "equal",
- "value": "block"
+ "value": "bytes=15-"
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": "\"fixture-5295cdfd25ff\""
}
- }
- ],
- "allow_headers": [
- "content-type"
+ }
],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
+ "content-range": "bytes 15-29/30",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "Y3QtdGVzdHMtb2JqZWN0"
}
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -33883,37 +63956,37 @@
"at": "/outcome",
"optional": false,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "one_of",
+ "values": [
+ "error",
+ "ok"
+ ]
}
},
{
- "at": "/value/etag",
+ "at": "/value/body_base64",
"optional": true,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/stage-key-trailing-slash",
- "profile": "azure",
+ "id": "operations/azure-hns/get-server-busy",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "stage, with the key \"trailing-slash/\"",
+ "purpose": "Report a 503 ServerBusy answer as an error, after at most 5 retries",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
],
+ "origin": "transient",
"call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/trailing-slash/",
- "op": "azure.stage_block"
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -33925,7 +63998,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -33933,7 +64006,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/trailing-slash/"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -33941,86 +64014,78 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
}
},
{
- "at": "/query/comp",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "block"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/blockid",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 503,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-error-code": "ServerBusy"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
}
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
+ ],
+ "optional": true
},
- {
- "at": "/value/etag",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/staged-absent",
- "profile": "azure",
- "lane": "core",
- "purpose": "staged absent",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/multipart/absent.bin",
- "kind": "all",
- "op": "azure.list_blocks"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -34038,7 +64103,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/absent.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -34048,89 +64113,77 @@
"is": "equal",
"value": ""
}
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
},
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "GET"
}
},
{
- "at": "/query/blocklisttype",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "all"
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobNotFound"
+ "x-ms-error-code": "ServerBusy"
},
"body": {
"encoding": "utf8",
- "data": "BlobNotFoundFixture error"
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
}
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlobNotFound"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/staged-absent-code-in-body",
- "profile": "azure",
- "lane": "core",
- "purpose": "staged absent, with the error code only in the XML body",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
- ],
- "origin": "constructed",
- "call": {
- "key": "object-tests/multipart/absent.bin",
- "kind": "all",
- "op": "azure.list_blocks"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -34148,7 +64201,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/absent.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -34158,41 +64211,76 @@
"is": "equal",
"value": ""
}
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ServerBusy"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ }
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
},
{
- "at": "/query/comp",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/blocklisttype",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "all"
+ "value": ""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "x-ms-error-code": "ServerBusy"
},
"body": {
"encoding": "utf8",
- "data": "BlobNotFoundFixture error"
+ "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
}
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -34209,7 +64297,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 503
}
},
{
@@ -34217,24 +64305,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "ServerBusy"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/staged-after-commit",
- "profile": "azure",
+ "id": "operations/azure-hns/get-if-unmodified-since-past",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "staged after commit",
+ "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/multipart/committed.bin",
- "kind": "all",
- "op": "azure.list_blocks"
+ "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -34254,7 +64342,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/committed.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -34266,40 +64354,29 @@
}
},
{
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "blocklist"
- }
- },
- {
- "at": "/query/blocklisttype",
+ "at": "/headers/if-unmodified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "all"
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-be8efdb79010\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-error-code": "ConditionNotMet"
},
"body": {
"encoding": "utf8",
- "data": "MDAwMDAx5MDAwMDAy6"
- },
- "framing": "chunked"
+ "data": "ConditionNotMetFixture error"
+ }
}
}
]
@@ -34311,72 +64388,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/committed/0/id_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDAwMDAx"
- }
- },
- {
- "at": "/value/committed/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 5
+ "value": "error"
}
},
{
- "at": "/value/committed/1/id_base64",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": 412
}
},
{
- "at": "/value/committed/1/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 6
- }
- },
- {
- "at": "/value/committed",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- },
- {
- "at": "/value/uncommitted",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
+ "value": "ConditionNotMet"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/staged-after-replacement",
- "profile": "azure",
+ "id": "operations/azure-hns/get-if-modified-since-future",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "staged after replacement",
+ "purpose": "Report 304 when If-Modified-Since names a future date, which Azure does not ignore",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/multipart/replaced.bin",
- "kind": "all",
- "op": "azure.list_blocks"
+ "if_modified_since": "Fri, 01 Jan 2100 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -34396,7 +64441,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/replaced.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -34408,40 +64453,27 @@
}
},
{
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "blocklist"
- }
- },
- {
- "at": "/query/blocklisttype",
+ "at": "/headers/if-modified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "all"
+ "value": "Fri, 01 Jan 2100 00:00:00 GMT"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 304,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-2184b3e6c2c3\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-error-code": "ConditionNotMet"
},
"body": {
- "encoding": "utf8",
- "data": "MDAwMDAx5"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
]
@@ -34453,56 +64485,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/committed/0/id_base64",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAx"
+ "value": 304
}
},
{
- "at": "/value/committed/0/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 5
- }
- },
- {
- "at": "/value/committed",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/uncommitted",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
+ "value": "ConditionNotMet"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/staged-after-whole-write",
- "profile": "azure",
+ "id": "operations/azure-hns/get-if-modified-since-past",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "staged after whole write",
+ "purpose": "Read an object modified since a past date",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/multipart/whole.bin",
- "kind": "all",
- "op": "azure.list_blocks"
+ "if_modified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -34522,7 +64538,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/whole.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -34534,19 +64550,11 @@
}
},
{
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "blocklist"
- }
- },
- {
- "at": "/query/blocklisttype",
+ "at": "/headers/if-modified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "all"
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
}
}
],
@@ -34555,19 +64563,23 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-f439b54167cb\"",
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": ""
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
}
]
@@ -34583,36 +64595,70 @@
}
},
{
- "at": "/value/committed",
+ "at": "/value/etag",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "\"fixture-5295cdfd25ff\""
}
},
{
- "at": "/value/uncommitted",
+ "at": "/value/size",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/staged-committed-empty",
- "profile": "azure",
+ "id": "operations/azure-hns/get-content-encoding-gzip",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "staged committed empty",
+ "purpose": "Return the stored gzip bytes and Content-Encoding: gzip without decoding them",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/multipart/staged.bin",
- "kind": "committed",
- "op": "azure.list_blocks"
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -34632,7 +64678,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -34642,22 +64688,6 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "blocklist"
- }
- },
- {
- "at": "/query/blocklisttype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "committed"
- }
}
],
"allow_headers": [],
@@ -34665,18 +64695,24 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-encoding": "gzip",
+ "content-md5": "CVsDGvNMZH4SPA4MSLswrA==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": ""
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ }
}
}
]
@@ -34692,36 +64728,78 @@
}
},
{
- "at": "/value/committed",
+ "at": "/value/etag",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "\"fixture-5295cdfd25ff\""
}
},
{
- "at": "/value/uncommitted",
+ "at": "/value/size",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": 42
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "CVsDGvNMZH4SPA4MSLswrA=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ }
+ },
+ {
+ "at": "/value/content_encoding",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "gzip"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/staged-committed-nothing",
- "profile": "azure",
+ "id": "operations/azure-hns/get-content-properties",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "staged committed nothing",
+ "purpose": "Return the stored content properties from a GET",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/multipart/empty.bin",
- "kind": "all",
- "op": "azure.list_blocks"
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -34741,7 +64819,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/empty.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -34751,22 +64829,6 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "blocklist"
- }
- },
- {
- "at": "/query/blocklisttype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "all"
- }
}
],
"allow_headers": [],
@@ -34774,19 +64836,26 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "cache-control": "max-age=3600",
+ "content-disposition": "attachment; filename=\"report.txt\"",
+ "content-language": "nl-NL",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "text/plain; charset=utf-8",
"date": {
"from": "now"
},
- "etag": "\"fixture-265df060a55b\"",
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": ""
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
}
]
@@ -34802,36 +64871,94 @@
}
},
{
- "at": "/value/committed",
+ "at": "/value/etag",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "\"fixture-5295cdfd25ff\""
}
},
{
- "at": "/value/uncommitted",
+ "at": "/value/size",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain; charset=utf-8"
+ }
+ },
+ {
+ "at": "/value/content_language",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "nl-NL"
+ }
+ },
+ {
+ "at": "/value/content_disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename=\"report.txt\""
+ }
+ },
+ {
+ "at": "/value/cache_control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
}
}
],
"refusal": null
},
{
- "id": "operations/azure/staged-escaped-id",
- "profile": "azure",
+ "id": "operations/azure-hns/get-with-staged-blocks",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "staged escaped id",
+ "purpose": "get with staged blocks",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/multipart/escaped.bin",
- "kind": "all",
- "op": "azure.list_blocks"
+ "key": "object-tests/multipart/pending.bin",
+ "op": "get"
},
"exchanges": [
{
@@ -34851,7 +64978,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/escaped.bin"
+ "value": "/fixture/object-tests/multipart/pending.bin"
}
},
{
@@ -34861,22 +64988,6 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "blocklist"
- }
- },
- {
- "at": "/query/blocklisttype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "all"
- }
}
],
"allow_headers": [],
@@ -34884,18 +64995,22 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-ce92c4d48b08\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "+/8=3"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "Zmlyc3RzZWNvbmQ="
+ }
}
}
]
@@ -34911,52 +65026,62 @@
}
},
{
- "at": "/value/committed",
+ "at": "/value/etag",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "\"fixture-ce92c4d48b08\""
}
},
{
- "at": "/value/uncommitted/0/id_base64",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "+/8="
+ "value": 11
}
},
{
- "at": "/value/uncommitted/0/size",
+ "at": "/value/content_type",
"optional": false,
"rule": {
"is": "equal",
- "value": 3
+ "value": "application/octet-stream"
}
},
{
- "at": "/value/uncommitted",
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 1
+ "is": "equal",
+ "value": "Zmlyc3RzZWNvbmQ="
}
}
],
"refusal": null
},
{
- "id": "operations/azure/staged-replacement",
- "profile": "azure",
+ "id": "operations/azure-hns/head-committed-declaring-md5",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "staged replacement",
+ "purpose": "head committed declaring md5",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/multipart/pending.bin",
- "kind": "all",
- "op": "azure.list_blocks"
+ "key": "object-tests/hashes/committed.bin",
+ "op": "head"
},
"exchanges": [
{
@@ -34968,7 +65093,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -34976,7 +65101,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/pending.bin"
+ "value": "/fixture/object-tests/hashes/committed.bin"
}
},
{
@@ -34986,22 +65111,6 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "blocklist"
- }
- },
- {
- "at": "/query/blocklisttype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "all"
- }
}
],
"allow_headers": [],
@@ -35009,19 +65118,24 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "13",
+ "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-9c5ca12bcfc9\"",
+ "etag": "\"fixture-9a581bc70e20\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "MDAwMDAx5MDAwMDAy6MDAwMDAx5"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -35037,84 +65151,62 @@
}
},
{
- "at": "/value/committed/0/id_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDAwMDAx"
- }
- },
- {
- "at": "/value/committed/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 5
- }
- },
- {
- "at": "/value/committed/1/id_base64",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": "\"fixture-9a581bc70e20\""
}
},
{
- "at": "/value/committed/1/size",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 6
- }
- },
- {
- "at": "/value/committed",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
+ "value": 13
}
},
{
- "at": "/value/uncommitted/0/id_base64",
+ "at": "/value/content_type",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAx"
+ "value": "application/octet-stream"
}
},
{
- "at": "/value/uncommitted/0/size",
+ "at": "/value/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 5
+ "value": "N6YZkbg+Lyfxtskwn8iRCg=="
}
},
{
- "at": "/value/uncommitted",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "array_length",
- "value": 1
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/staged-uncommitted-only",
- "profile": "azure",
+ "id": "operations/azure-hns/head-committed",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "staged uncommitted only",
+ "purpose": "head committed",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/multipart/staged.bin",
- "kind": "all",
- "op": "azure.list_blocks"
+ "key": "object-tests/multipart/committed.bin",
+ "op": "head"
},
"exchanges": [
{
@@ -35126,7 +65218,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -35134,7 +65226,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/multipart/committed.bin"
}
},
{
@@ -35144,22 +65236,6 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "blocklist"
- }
- },
- {
- "at": "/query/blocklisttype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "all"
- }
}
],
"allow_headers": [],
@@ -35167,18 +65243,23 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "11",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-8ec031f3abfa\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "MDAwMDAx5MDAwMDAy6"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -35194,68 +65275,54 @@
}
},
{
- "at": "/value/committed",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/uncommitted/0/id_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDAwMDAx"
- }
- },
- {
- "at": "/value/uncommitted/0/size",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 5
+ "value": "\"fixture-8ec031f3abfa\""
}
},
{
- "at": "/value/uncommitted/1/id_base64",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": 11
}
},
{
- "at": "/value/uncommitted/1/size",
+ "at": "/value/content_type",
"optional": false,
"rule": {
"is": "equal",
- "value": 6
+ "value": "application/octet-stream"
}
},
{
- "at": "/value/uncommitted",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "array_length",
- "value": 2
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure/staged-uncommitted",
- "profile": "azure",
+ "id": "operations/azure-hns/head-metadata",
+ "profile": "azure-hns",
"lane": "core",
- "purpose": "staged uncommitted",
+ "purpose": "head metadata",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/multipart/staged.bin",
- "kind": "uncommitted",
- "op": "azure.list_blocks"
+ "key": "object-tests/metadata/object.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -35267,7 +65334,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -35275,7 +65342,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/metadata/object.txt"
}
},
{
@@ -35285,22 +65352,6 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "blocklist"
- }
- },
- {
- "at": "/query/blocklisttype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "uncommitted"
- }
}
],
"allow_headers": [],
@@ -35308,18 +65359,26 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "1",
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-4d04dba3441e\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-meta-name": "value",
+ "x-ms-meta-second": "2",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "MDAwMDAx5MDAwMDAy6"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -35335,68 +65394,73 @@
}
},
{
- "at": "/value/committed",
+ "at": "/value/etag",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "\"fixture-4d04dba3441e\""
}
},
{
- "at": "/value/uncommitted/0/id_base64",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAx"
+ "value": 1
}
},
{
- "at": "/value/uncommitted/0/size",
+ "at": "/value/content_type",
"optional": false,
"rule": {
"is": "equal",
- "value": 5
+ "value": "application/octet-stream"
}
},
{
- "at": "/value/uncommitted/1/id_base64",
+ "at": "/value/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
}
},
{
- "at": "/value/uncommitted/1/size",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": 6
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/uncommitted",
+ "at": "/value/metadata",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 2
+ "is": "equal",
+ "value": {
+ "name": "value",
+ "second": "2"
+ }
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/commit-container-missing",
+ "id": "operations/azure-hns/head-missing",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit container missing",
+ "purpose": "head missing. A client reports it as not_found: the object is absent",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [],
- "key": "object.bin",
- "op": "azure.commit_blocks"
+ "key": "object-tests/read/absent.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -35408,7 +65472,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -35416,42 +65480,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": ""
+ "value": "/fixture/object-tests/read/absent.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
"status": 404,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ContainerNotFound"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
- "encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -35480,30 +65533,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ContainerNotFound"
+ "value": "BlobNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "not_found"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/commit-declaring-md5",
+ "id": "operations/azure-hns/head-previous-version",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit declaring md5",
+ "purpose": "head previous version",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- }
- ],
- "content_md5_base64": "N6YZkbg+Lyfxtskwn8iRCg==",
- "key": "object-tests/hashes/committed.bin",
- "op": "azure.commit_blocks"
+ "key": "object-tests/versions-mtypy4jp/object.txt",
+ "op": "head",
+ "version": "none-1"
},
"exchanges": [
{
@@ -35515,7 +65570,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -35523,48 +65578,34 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/hashes/committed.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "MDAwMDAx"
+ "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
}
},
{
- "at": "/headers/x-ms-blob-content-md5",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ "value": ""
}
},
{
- "at": "/query/comp",
+ "at": "/query/versionid",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "none-1"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 400,
"headers": {
"date": {
"from": "now"
- },
- "etag": "\"fixture-9a581bc70e20\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ }
},
"body": {
"encoding": "base64",
@@ -35581,52 +65622,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-9a581bc70e20\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": 400
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/commit-duplicate-id",
+ "id": "operations/azure-hns/head-snapshot",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit duplicate id",
+ "purpose": "head snapshot",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- },
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- }
- ],
- "key": "object-tests/multipart/duplicate.bin",
- "op": "azure.commit_blocks"
+ "key": "object-tests/snapshots/object.txt",
+ "op": "head",
+ "snapshot": "2024-01-01T00:00:00.1577201Z"
},
"exchanges": [
{
@@ -35638,7 +65659,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -35646,40 +65667,35 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/duplicate.bin"
+ "value": "/fixture/object-tests/snapshots/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "MDAwMDAxMDAwMDAx"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/comp",
+ "at": "/query/snapshot",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "2024-01-01T00:00:00.1577201Z"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 404,
"headers": {
"date": {
"from": "now"
},
- "etag": "\"fixture-a8581b642c5f\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
"encoding": "base64",
@@ -35696,48 +65712,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-a8581b642c5f\""
+ "value": 404
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "BlobNotFound"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/commit-escaped-id",
+ "id": "operations/azure-hns/head-written-with-crc64",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit escaped id",
+ "purpose": "head written with crc64",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "+/8=",
- "kind": "latest"
- }
- ],
- "key": "object-tests/multipart/escaped.bin",
- "op": "azure.commit_blocks"
+ "key": "object-tests/hashes/crc64.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -35749,7 +65756,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -35757,40 +65764,36 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/escaped.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "+/8="
+ "value": "/fixture/object-tests/hashes/crc64.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-length": "13",
+ "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-77b5e2317b8a\"",
+ "etag": "\"fixture-bf462a2f52f2\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -35815,7 +65818,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-77b5e2317b8a\""
+ "value": "\"fixture-bf462a2f52f2\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 13
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "N6YZkbg+Lyfxtskwn8iRCg=="
}
},
{
@@ -35833,23 +65860,16 @@
"refusal": null
},
{
- "id": "operations/azure-hns/commit-lost-the-race-to-create",
+ "id": "operations/azure-hns/head-written-with-md5",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit lost the race to create",
+ "purpose": "head written with md5",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- }
- ],
- "if_none_match": "*",
- "key": "object-tests/multipart/pending.bin",
- "op": "azure.commit_blocks"
+ "key": "object-tests/hashes/md5.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -35861,7 +65881,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -35869,50 +65889,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/pending.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "MDAwMDAx"
- }
- },
- {
- "at": "/headers/if-none-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "*"
+ "value": "/fixture/object-tests/hashes/md5.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "13",
+ "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobAlreadyExists"
+ "etag": "\"fixture-15ae0acd3480\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "BlobAlreadyExistsFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -35925,40 +65935,66 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 409
+ "value": "\"fixture-15ae0acd3480\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobAlreadyExists"
+ "value": 13
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/commit-nothing",
+ "id": "operations/azure-hns/head",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit nothing",
+ "purpose": "head",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [],
- "key": "object-tests/multipart/empty.bin",
- "op": "azure.commit_blocks"
+ "key": "object-tests/read/object.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -35970,7 +66006,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -35978,40 +66014,36 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/empty.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": ""
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-072bed78cc6a\"",
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -36036,7 +66068,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-072bed78cc6a\""
+ "value": "\"fixture-5295cdfd25ff\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
}
},
{
@@ -36054,22 +66110,16 @@
"refusal": null
},
{
- "id": "operations/azure-hns/commit-over-whole-object",
+ "id": "operations/azure-hns/head-key-question",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit over whole object",
+ "purpose": "head, with the key \"question?mark.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- }
- ],
- "key": "object-tests/multipart/over.bin",
- "op": "azure.commit_blocks"
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -36081,7 +66131,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -36089,40 +66139,36 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/over.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "MDAwMDAx"
+ "value": "/fixture/object-tests/keys/question?mark.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-7dc650e58291\"",
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -36147,7 +66193,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-7dc650e58291\""
+ "value": "\"fixture-5295cdfd25ff\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
}
},
{
@@ -36165,23 +66235,16 @@
"refusal": null
},
{
- "id": "operations/azure-hns/commit-precondition-failed",
+ "id": "operations/azure-hns/head-key-hash",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit precondition failed",
+ "purpose": "head, with the key \"hash#tag.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- }
- ],
- "if_match": "\"fixture-088e5dc109cf\"",
- "key": "object-tests/multipart/pending.bin",
- "op": "azure.commit_blocks"
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -36193,7 +66256,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -36201,50 +66264,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/pending.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "MDAwMDAx"
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-088e5dc109cf\""
+ "value": "/fixture/object-tests/keys/hash#tag.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "ConditionNotMet"
+ "etag": "\"fixture-5295cdfd25ff\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "ConditionNotMetFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -36257,150 +66310,66 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": "\"fixture-5295cdfd25ff\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": 30
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/commit-refused",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "blocks": [],
- "key": "object.bin",
- "op": "azure.commit_blocks"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": ""
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "blocklist"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ContainerNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/content_type",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "application/octet-stream"
}
},
{
- "at": "/status",
+ "at": "/value/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
}
},
{
- "at": "/code",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "ContainerNotFound"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/commit-reordered",
+ "id": "operations/azure-hns/head-key-percent",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit reordered",
+ "purpose": "head, with the key \"percent%20.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAy",
- "kind": "latest"
- },
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- }
- ],
- "key": "object-tests/multipart/reordered.bin",
- "op": "azure.commit_blocks"
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -36412,7 +66381,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -36420,40 +66389,36 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/reordered.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "MDAwMDAyMDAwMDAx"
+ "value": "/fixture/object-tests/keys/percent%20.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-446301cfeaef\"",
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -36478,7 +66443,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-446301cfeaef\""
+ "value": "\"fixture-5295cdfd25ff\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
}
},
{
@@ -36496,22 +66485,16 @@
"refusal": null
},
{
- "id": "operations/azure-hns/commit-replacement",
+ "id": "operations/azure-hns/head-key-plus",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit replacement",
+ "purpose": "head, with the key \"plus+plus.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- }
- ],
- "key": "object-tests/multipart/replaced.bin",
- "op": "azure.commit_blocks"
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -36523,7 +66506,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -36531,40 +66514,36 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/replaced.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "MDAwMDAx"
+ "value": "/fixture/object-tests/keys/plus+plus.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-9c5e55ff559c\"",
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -36589,7 +66568,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-9c5e55ff559c\""
+ "value": "\"fixture-5295cdfd25ff\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
}
},
{
@@ -36607,26 +66610,16 @@
"refusal": null
},
{
- "id": "operations/azure-hns/commit-unstaged-id",
+ "id": "operations/azure-hns/head-key-space",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit unstaged id",
+ "purpose": "head, with the key \"space name.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- },
- {
- "id_base64": "MDAwMDA5",
- "kind": "latest"
- }
- ],
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.commit_blocks"
+ "key": "object-tests/keys/space name.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -36638,7 +66631,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -36646,42 +66639,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "MDAwMDAxMDAwMDA5"
+ "value": "/fixture/object-tests/keys/space name.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidBlockList"
+ "etag": "\"fixture-5295cdfd25ff\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidBlockListFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -36694,52 +66685,66 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "\"fixture-5295cdfd25ff\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidBlockList"
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/commit-unstaged-id-code-in-body",
+ "id": "operations/azure-hns/head-key-non-ascii",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit unstaged id, with the error code only in the XML body",
+ "purpose": "head, with the key \"café/雪.txt\"",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
- "origin": "constructed",
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- },
- {
- "id_base64": "MDAwMDA5",
- "kind": "latest"
- }
- ],
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.commit_blocks"
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -36751,7 +66756,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -36759,41 +66764,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "MDAwMDAxMDAwMDA5"
+ "value": "/fixture/object-tests/keys/café/雪.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": ""
}
- }
- ],
- "allow_headers": [
- "content-type"
+ }
],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-5295cdfd25ff\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidBlockListFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -36806,49 +66810,66 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "\"fixture-5295cdfd25ff\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidBlockList"
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/commit",
+ "id": "operations/azure-hns/head-key-double-slash",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit",
+ "purpose": "head, with the key \"double//slash.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- },
- {
- "id_base64": "MDAwMDAy",
- "kind": "latest"
- }
- ],
- "key": "object-tests/multipart/committed.bin",
- "op": "azure.commit_blocks"
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -36860,7 +66881,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -36868,40 +66889,36 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/committed.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "MDAwMDAxMDAwMDAy"
+ "value": "/fixture/object-tests/keys/double//slash.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-8ec031f3abfa\"",
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -36926,7 +66943,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-8ec031f3abfa\""
+ "value": "\"fixture-5295cdfd25ff\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "application/octet-stream"
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
}
},
{
@@ -36944,26 +66985,16 @@
"refusal": null
},
{
- "id": "operations/azure-hns/commit-key-question",
+ "id": "operations/azure-hns/head-key-trailing-slash",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit, with the key \"question?mark.txt\"",
+ "purpose": "head, with the key \"trailing-slash/\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- },
- {
- "id_base64": "MDAwMDAy",
- "kind": "latest"
- }
- ],
- "key": "object-tests/keys/question?mark.txt",
- "op": "azure.commit_blocks"
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "head"
},
"exchanges": [
{
@@ -36975,7 +67006,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -36983,44 +67014,30 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/question?mark.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "MDAwMDAxMDAwMDAy"
+ "value": "/fixture/object-tests/keys/trailing-slash/"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 404,
"headers": {
"date": {
"from": "now"
},
- "etag": "\"fixture-8ec031f3abfa\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "empty"
}
}
}
@@ -37033,52 +67050,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-8ec031f3abfa\""
+ "value": 404
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "BlobNotFound"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/commit-key-hash",
+ "id": "operations/azure-hns/head-content-properties",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit, with the key \"hash#tag.txt\"",
+ "purpose": "Return the stored content properties from a HEAD",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- },
- {
- "id_base64": "MDAwMDAy",
- "kind": "latest"
- }
- ],
- "key": "object-tests/keys/hash#tag.txt",
- "op": "azure.commit_blocks"
+ "key": "object-tests/read/object.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -37090,7 +67094,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -37098,40 +67102,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/hash#tag.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "MDAwMDAxMDAwMDAy"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "cache-control": "max-age=3600",
+ "content-disposition": "attachment; filename=\"report.txt\"",
+ "content-language": "nl-NL",
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "text/plain; charset=utf-8",
"date": {
"from": "now"
},
- "etag": "\"fixture-8ec031f3abfa\"",
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -37156,7 +67159,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-8ec031f3abfa\""
+ "value": "\"fixture-5295cdfd25ff\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H1VC0PNTmj+yaCRN4U931g=="
}
},
{
@@ -37169,31 +67188,54 @@
""
]
}
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain; charset=utf-8"
+ }
+ },
+ {
+ "at": "/value/content_language",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "nl-NL"
+ }
+ },
+ {
+ "at": "/value/content_disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename=\"report.txt\""
+ }
+ },
+ {
+ "at": "/value/cache_control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/commit-key-percent",
+ "id": "operations/azure-hns/head-if-unmodified-since-past",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit, with the key \"percent%20.txt\"",
+ "purpose": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- },
- {
- "id_base64": "MDAwMDAy",
- "kind": "latest"
- }
- ],
- "key": "object-tests/keys/percent%20.txt",
- "op": "azure.commit_blocks"
+ "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -37205,7 +67247,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -37213,44 +67255,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/percent%20.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "MDAwMDAxMDAwMDAy"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/comp",
+ "at": "/headers/if-unmodified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 412,
"headers": {
"date": {
"from": "now"
},
- "etag": "\"fixture-8ec031f3abfa\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-error-code": "ConditionNotMet"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "empty"
}
}
}
@@ -37263,52 +67299,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-8ec031f3abfa\""
+ "value": 412
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "ConditionNotMet"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/commit-key-plus",
+ "id": "operations/azure-hns/head-copy-status",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit, with the key \"plus+plus.txt\"",
+ "purpose": "Report the copy that wrote a blob, its x-ms-copy-status and x-ms-copy-id, from a HEAD of the blob",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-properties"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- },
- {
- "id_base64": "MDAwMDAy",
- "kind": "latest"
- }
- ],
- "key": "object-tests/keys/plus+plus.txt",
- "op": "azure.commit_blocks"
+ "key": "object-tests/copy/target.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -37320,7 +67343,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -37328,44 +67351,43 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/plus+plus.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "MDAwMDAxMDAwMDAy"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-length": "5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-8ec031f3abfa\"",
+ "etag": "\"fixture-16c44f0af72d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-copy-completion-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-progress": "5/5",
+ "x-ms-copy-source": "https://fixture.blob.core.windows.net/fixture/object-tests/copy/source.txt",
+ "x-ms-copy-status": "success",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "empty"
}
}
}
@@ -37382,48 +67404,35 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/copy_status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-8ec031f3abfa\""
+ "value": "success"
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/value/copy_id",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "fixture-copy-id"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/commit-key-space",
+ "id": "operations/azure-hns/head-access-tier",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit, with the key \"space name.txt\"",
+ "purpose": "Report a blob's access tier, which Azure sends in x-ms-access-tier",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- },
- {
- "id_base64": "MDAwMDAy",
- "kind": "latest"
- }
- ],
- "key": "object-tests/keys/space name.txt",
- "op": "azure.commit_blocks"
+ "key": "object-tests/read/object.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -37435,7 +67444,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -37443,40 +67452,37 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/space name.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "MDAwMDAxMDAwMDAy"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": ""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-length": "30",
+ "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-8ec031f3abfa\"",
+ "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-access-tier": "Cool",
+ "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-server-encrypted": "true"
},
"body": {
"encoding": "base64",
@@ -37497,48 +67503,27 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/access_tier",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-8ec031f3abfa\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "Cool"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/commit-key-non-ascii",
+ "id": "operations/azure-hns/list-after-delete-with-versions",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit, with the key \"café/雪.txt\"",
+ "purpose": "list after delete with versions",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- },
- {
- "id_base64": "MDAwMDAy",
- "kind": "latest"
- }
- ],
- "key": "object-tests/keys/café/雪.txt",
- "op": "azure.commit_blocks"
+ "op": "list_page",
+ "prefix": "object-tests/versions-mtypy4jp/deleted.txt"
},
"exchanges": [
{
@@ -37550,7 +67535,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -37558,15 +67543,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/café/雪.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "MDAwMDAxMDAwMDAy"
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
}
},
{
@@ -37574,29 +67567,35 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/versions-mtypy4jp/deleted.txt"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-8ec031f3abfa\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "object-tests/versions-mtypy4jp/deleted.txt"
+ },
+ "framing": "chunked"
}
}
]
@@ -37612,48 +67611,44 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": "\"fixture-8ec031f3abfa\""
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/value/prefixes",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/commit-key-double-slash",
+ "id": "operations/azure-hns/list-bad-marker",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit, with the key \"double//slash.txt\"",
+ "purpose": "list bad marker",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- },
- {
- "id_base64": "MDAwMDAy",
- "kind": "latest"
- }
- ],
- "key": "object-tests/keys/double//slash.txt",
- "op": "azure.commit_blocks"
+ "continuation_token": "fixture-marker+/1d52c72a655f=",
+ "op": "list_page",
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -37665,7 +67660,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -37673,15 +67668,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/double//slash.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "MDAwMDAxMDAwMDAy"
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
}
},
{
@@ -37689,28 +67692,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/marker",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/1d52c72a655f="
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 400,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-8ec031f3abfa\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-ms-error-code": "InvalidQueryParameterValue"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "InvalidQueryParameterValueFixture error"
}
}
}
@@ -37723,52 +67738,43 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-8ec031f3abfa\""
+ "value": 400
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "InvalidQueryParameterValue"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/commit-key-trailing-slash",
+ "id": "operations/azure-hns/list-bad-marker-code-in-body",
"profile": "azure-hns",
"lane": "core",
- "purpose": "commit, with the key \"trailing-slash/\"",
+ "purpose": "list bad marker, with the error code only in the XML body",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
],
+ "origin": "constructed",
"call": {
- "blocks": [
- {
- "id_base64": "MDAwMDAx",
- "kind": "latest"
- },
- {
- "id_base64": "MDAwMDAy",
- "kind": "latest"
- }
- ],
- "key": "object-tests/keys/trailing-slash/",
- "op": "azure.commit_blocks"
+ "continuation_token": "fixture-marker+/1d52c72a655f=",
+ "op": "list_page",
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -37780,7 +67786,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -37788,15 +67794,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/trailing-slash/"
+ "value": "/fixture"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "MDAwMDAxMDAwMDAy"
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
}
},
{
@@ -37804,13 +67818,27 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/marker",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/1d52c72a655f="
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
"status": 400,
@@ -37818,12 +67846,11 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "InvalidBlockList"
+ }
},
"body": {
"encoding": "utf8",
- "data": "InvalidBlockListFixture error"
+ "data": "InvalidQueryParameterValueFixture error"
}
}
}
@@ -37852,23 +67879,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidBlockList"
+ "value": "InvalidQueryParameterValue"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/delete-accepted",
+ "id": "operations/azure-hns/list-container-missing",
"profile": "azure-hns",
"lane": "core",
- "purpose": "delete accepted",
+ "purpose": "list container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/remove/present.txt",
- "op": "delete"
+ "op": "list_page",
+ "prefix": ""
},
"exchanges": [
{
@@ -37880,7 +67907,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -37888,7 +67915,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "/fixture"
}
},
{
@@ -37898,22 +67925,46 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 202,
+ "status": 404,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-error-code": "ContainerNotFound"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "ContainerNotFoundFixture error"
}
}
}
@@ -37926,23 +67977,48 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ContainerNotFound"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/delete-accepted-key-question",
+ "id": "operations/azure-hns/list-delimited",
"profile": "azure-hns",
"lane": "core",
- "purpose": "delete accepted, with the key \"question?mark.txt\"",
+ "purpose": "list delimited",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/question?mark.txt",
- "op": "delete"
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -37954,7 +68030,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -37962,7 +68038,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/question?mark.txt"
+ "value": "/fixture"
}
},
{
@@ -37972,13 +68048,46 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 202,
+ "status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
@@ -37986,9 +68095,10 @@
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "object-tests/board//object-tests/board/a.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e8a4acb31ab1file8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nested/Mon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMT0x8DF10FBAC3E874Cdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/board/z.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0d608f7e2d51file2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
}
}
]
@@ -37996,27 +68106,190 @@
],
"expect": [
{
- "at": "/outcome",
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-e8a4acb31ab1"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/z.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-0d608f7e2d51"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Je0by0I7C3IA9IX8X/ccjg=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes/0",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/nested/"
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/delete-accepted-key-hash",
+ "id": "operations/azure-hns/list-other-delimiter",
"profile": "azure-hns",
"lane": "core",
- "purpose": "delete accepted, with the key \"hash#tag.txt\"",
+ "purpose": "Report the 400 DelimiterIsInvalidForHNS that an HNS account answers to any delimiter but /",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/hash#tag.txt",
- "op": "delete"
+ "delimiter": "-",
+ "op": "list_page",
+ "prefix": "object-tests/dashes/"
},
"exchanges": [
{
@@ -38028,7 +68301,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -38036,7 +68309,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/hash#tag.txt"
+ "value": "/fixture"
}
},
{
@@ -38046,96 +68319,54 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 202,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-accepted-key-percent",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "delete accepted, with the key \"percent%20.txt\"",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/keys/percent%20.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/percent%20.txt"
+ "value": "list"
}
},
{
- "at": "/body_base64",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/dashes/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "-"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 202,
+ "status": 400,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-error-code": "DelimiterIsInvalidForHNS"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "DelimiterIsInvalidForHNSThe only delimiter supported for hierarchical namespace accounts is '/'."
}
}
}
@@ -38148,23 +68379,80 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DelimiterIsInvalidForHNS"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "delimiter"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DelimiterIsInvalidForHNS"
+ }
+ }
+ ]
},
{
- "id": "operations/azure-hns/delete-accepted-key-plus",
+ "id": "operations/azure-hns/list-empty",
"profile": "azure-hns",
"lane": "core",
- "purpose": "delete accepted, with the key \"plus+plus.txt\"",
+ "purpose": "list empty",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/plus+plus.txt",
- "op": "delete"
+ "op": "list_page",
+ "prefix": "object-tests/nothing/"
},
"exchanges": [
{
@@ -38176,7 +68464,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -38184,7 +68472,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/plus+plus.txt"
+ "value": "/fixture"
}
},
{
@@ -38194,87 +68482,38 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 202,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-accepted-key-space",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "delete accepted, with the key \"space name.txt\"",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/keys/space name.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/space name.txt"
+ "value": "list"
}
},
{
- "at": "/body_base64",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/nothing/"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 202,
+ "status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
@@ -38282,9 +68521,10 @@
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "object-tests/nothing/"
+ },
+ "framing": "chunked"
}
}
]
@@ -38298,21 +68538,45 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/delete-accepted-key-non-ascii",
+ "id": "operations/azure-hns/list-all-empty",
"profile": "azure-hns",
"lane": "core",
- "purpose": "delete accepted, with the key \"café/雪.txt\"",
+ "purpose": "list empty",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
],
"call": {
- "key": "object-tests/keys/café/雪.txt",
- "op": "delete"
+ "op": "list",
+ "prefix": ""
},
"exchanges": [
{
@@ -38324,7 +68588,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -38332,7 +68596,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/café/雪.txt"
+ "value": "/fixture"
}
},
{
@@ -38342,76 +68606,26 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 202,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-accepted-key-double-slash",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "delete accepted, with the key \"double//slash.txt\"",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/keys/double//slash.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/double//slash.txt"
+ "value": "list"
}
},
{
- "at": "/body_base64",
- "optional": false,
+ "at": "/query/prefix",
+ "optional": true,
"rule": {
"is": "equal",
"value": ""
@@ -38421,18 +68635,28 @@
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 202,
+ "status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
},
"body": {
"encoding": "base64",
- "data": ""
- }
+ "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PC9CbG9icz48TmV4dE1hcmtlcj48L05leHRNYXJrZXI+PC9FbnVtZXJhdGlvblJlc3VsdHM+"
+ },
+ "framing": "chunked"
}
}
]
@@ -38446,21 +68670,29 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": []
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/delete-accepted-key-trailing-slash",
+ "id": "operations/azure-hns/list-encoded-names",
"profile": "azure-hns",
"lane": "core",
- "purpose": "delete accepted, with the key \"trailing-slash/\"",
+ "purpose": "list encoded names",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/trailing-slash/",
- "op": "delete"
+ "op": "list_page",
+ "prefix": "object-tests/names/"
},
"exchanges": [
{
@@ -38472,7 +68704,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -38480,7 +68712,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/trailing-slash/"
+ "value": "/fixture"
}
},
{
@@ -38490,23 +68722,49 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/"
+ }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidUri"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "InvalidUriFixture error"
- }
+ "data": "object-tests/names/object-tests%2Fnames%2F100%25-%EF%BF%BE-name.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-78b47742a630file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/a&b.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-f951d7d7ec22file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/backMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e64e63e9a87bdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/names/back/slash.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e9c0e2dbcfe1file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/café.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7d8cf0126958file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/hash#tag.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-abf3c382e0bafile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/percent%20.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7ded7554e543file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/plus+plus.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-235b28f1c86ffile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/q?mark.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-cb57b84f4392file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
}
}
]
@@ -38518,43 +68776,632 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "object-tests/names/100%--name.txt"
}
},
{
- "at": "/code",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidUri"
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-78b47742a630"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/a&b.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-f951d7d7ec22"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/back"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-e64e63e9a87b"
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/directory",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/back/slash.txt"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-e9c0e2dbcfe1"
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/café.txt"
+ }
+ },
+ {
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/4/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-7d8cf0126958"
+ }
+ },
+ {
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/hash#tag.txt"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/5/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-abf3c382e0ba"
+ }
+ },
+ {
+ "at": "/value/entries/5/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/6/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/percent%20.txt"
+ }
+ },
+ {
+ "at": "/value/entries/6/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/6/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-7ded7554e543"
+ }
+ },
+ {
+ "at": "/value/entries/6/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/7/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/plus+plus.txt"
+ }
+ },
+ {
+ "at": "/value/entries/7/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/7/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-235b28f1c86f"
+ }
+ },
+ {
+ "at": "/value/entries/7/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/8/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/q?mark.txt"
+ }
+ },
+ {
+ "at": "/value/entries/8/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/8/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-cb57b84f4392"
+ }
+ },
+ {
+ "at": "/value/entries/8/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/8/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/8/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/8/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 9
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/delete-many",
+ "id": "operations/azure-hns/list-xml-escaped",
"profile": "azure-hns",
"lane": "core",
- "purpose": "Delete several objects in one batch and report each result",
+ "purpose": "list xml escaped",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
],
"call": {
- "keys": [
- "object-tests/batch/a.txt",
- "object-tests/batch/b.txt",
- "object-tests/batch/absent.txt"
- ],
- "op": "delete_many"
+ "op": "list",
+ "prefix": ""
},
"exchanges": [
{
@@ -38566,7 +69413,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -38578,51 +69425,61 @@
}
},
{
- "at": "/headers/content-type",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "multipart/mixed; boundary=batch_[0-9A-Za-z-]+"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/body_text",
+ "at": "/query/restype",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "(?s).*DELETE (?:https?://[^/]+)?/fixture/object-tests/batch/a\\.txt HTTP/1\\.1.*DELETE (?:https?://[^/]+)?/fixture/object-tests/batch/b\\.txt HTTP/1\\.1.*DELETE (?:https?://[^/]+)?/fixture/object-tests/batch/absent\\.txt HTTP/1\\.1.*"
+ "is": "equal",
+ "value": "container"
}
},
{
- "at": "/query/restype",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "list"
}
},
{
- "at": "/query/comp",
- "optional": false,
+ "at": "/query/prefix",
+ "optional": true,
"rule": {
"is": "equal",
- "value": "batch"
+ "value": ""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 202,
+ "status": 200,
"headers": {
- "content-type": "multipart/mixed; boundary=batchresponse_fixture",
+ "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
},
"body": {
- "encoding": "utf8",
- "data": "--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 0\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture-0\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\nServer: Windows-Azure-Blob/1.0\r\n\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 1\r\n\r\nHTTP/1.1 202 Accepted\r\nx-ms-request-id: fixture-1\r\nx-ms-delete-type-permanent: true\r\nx-ms-version: 2023-11-03\r\nServer: Windows-Azure-Blob/1.0\r\n\r\n--batchresponse_fixture\r\nContent-Type: application/http\r\nContent-ID: 2\r\n\r\nHTTP/1.1 404 The specified blob does not exist.\r\nx-ms-request-id: fixture-2\r\nx-ms-error-code: BlobNotFound\r\nx-ms-version: 2023-11-03\r\nContent-Length: 110\r\nContent-Type: application/xml\r\nServer: Windows-Azure-Blob/1.0\r\n\r\nBlobNotFoundFixture error\r\n--batchresponse_fixture--"
+ "encoding": "base64",
+ "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+YSZhbXA7YjwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PEJsb2I+PE5hbWU+YyZsdDtkPC9OYW1lPjxQcm9wZXJ0aWVzPjxMYXN0LU1vZGlmaWVkPk1vbiwgMDEgSmFuIDIwMjQgMDA6MDA6MDAgR01UPC9MYXN0LU1vZGlmaWVkPjxFdGFnPiJmaXh0dXJlIjwvRXRhZz48Q29udGVudC1MZW5ndGg+NTwvQ29udGVudC1MZW5ndGg+PEJsb2JUeXBlPkJsb2NrQmxvYjwvQmxvYlR5cGU+PC9Qcm9wZXJ0aWVzPjwvQmxvYj48L0Jsb2JzPjxOZXh0TWFya2VyPjwvTmV4dE1hcmtlcj48L0VudW1lcmF0aW9uUmVzdWx0cz4="
},
"framing": "chunked"
}
@@ -38640,27 +69497,13 @@
}
},
{
- "at": "/value/deleted",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": [
- "object-tests/batch/a.txt",
- "object-tests/batch/b.txt"
- ]
- }
- },
- {
- "at": "/value/errors",
+ "at": "/value/keys",
"optional": false,
"rule": {
"is": "equal",
"value": [
- {
- "code": "BlobNotFound",
- "key": "object-tests/batch/absent.txt",
- "status": 404
- }
+ "a&b",
+ "cLeaseIdMissingFixture error"
- }
+ "data": "object-tests/board/2object-tests/board/a.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e8a4acb31ab1file8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nestedMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-bcf8c9e06f70directory0BlockBlobHottrueunlockedavailabletruefixture-marker+/17aa95c4a402="
+ },
+ "framing": "chunked"
}
}
]
@@ -38744,39 +69613,178 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": "object-tests/board/a.txt"
}
},
{
- "at": "/code",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "LeaseIdMissing"
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-e8a4acb31ab1"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/nested"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-bcf8c9e06f70"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/directory",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/17aa95c4a402="
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/delete-leased-without-lease-id",
+ "id": "operations/azure-hns/list-page-size-one",
"profile": "azure-hns",
"lane": "core",
- "purpose": "Refuse to delete a leased object without its lease ID",
+ "purpose": "A page of zero entries is out of range, but a page of one is not. Send a page size of 1 and report the one entry and the continuation token.",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/leases/object.txt",
- "op": "delete"
+ "op": "list_page",
+ "page_size": 1,
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -38788,7 +69796,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -38796,7 +69804,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "/fixture"
}
},
{
@@ -38806,23 +69814,57 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "LeaseIdMissing"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "LeaseIdMissingFixture error"
- }
+ "data": "object-tests/board/1object-tests/board/a.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e8a4acb31ab1file8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletruefixture-marker+/17aa95c4a402="
+ },
+ "framing": "chunked"
}
}
]
@@ -38834,41 +69876,115 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": "object-tests/board/a.txt"
}
},
{
- "at": "/code",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "LeaseIdMissing"
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-e8a4acb31ab1"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/17aa95c4a402="
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/delete-server-busy",
+ "id": "operations/azure-hns/list-operation-timed-out",
"profile": "azure-hns",
"lane": "core",
- "purpose": "Report a 503 ServerBusy answer as an error, after at most 5 retries",
+ "purpose": "Report a 500 OperationTimedOut answer as an error, after at most 5 retries",
"sources": [
"https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
"https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
],
"origin": "transient",
"call": {
- "key": "object-tests/remove/present.txt",
- "op": "delete"
+ "op": "list_page",
+ "page_size": 2,
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -38880,7 +69996,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -38888,7 +70004,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "/fixture"
}
},
{
@@ -38898,22 +70014,54 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 500,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ServerBusy"
+ "x-ms-error-code": "OperationTimedOut"
},
"body": {
"encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ "data": "OperationTimedOutThe operation could not be completed within the permitted time."
}
}
}
@@ -38928,7 +70076,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -38936,7 +70084,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "/fixture"
}
},
{
@@ -38946,71 +70094,54 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ServerBusy"
},
- "body": {
- "encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
- }
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "list"
}
},
{
- "at": "/body_base64",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 500,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ServerBusy"
+ "x-ms-error-code": "OperationTimedOut"
},
"body": {
"encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ "data": "OperationTimedOutThe operation could not be completed within the permitted time."
}
}
}
@@ -39026,7 +70157,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -39034,7 +70165,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "/fixture"
}
},
{
@@ -39044,71 +70175,54 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ServerBusy"
},
- "body": {
- "encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
- }
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "list"
}
},
{
- "at": "/body_base64",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 500,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ServerBusy"
+ "x-ms-error-code": "OperationTimedOut"
},
"body": {
"encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
+ "data": "OperationTimedOutThe operation could not be completed within the permitted time."
}
}
}
@@ -39124,7 +70238,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -39132,7 +70246,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "/fixture"
}
},
{
@@ -39142,169 +70256,60 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ServerBusy"
},
- "body": {
- "encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
- }
- }
- ],
- "optional": true
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 503
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ServerBusy"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-if-unmodified-since-past",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Refuse a delete with 412 when the object changed after If-Unmodified-Since",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/remove/present.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "list"
}
},
{
- "at": "/body_base64",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/board/"
}
},
{
- "at": "/headers/if-unmodified-since",
+ "at": "/query/maxresults",
"optional": false,
"rule": {
"is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ "value": "2"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 500,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ConditionNotMet"
+ "x-ms-error-code": "OperationTimedOut"
},
"body": {
"encoding": "utf8",
- "data": "ConditionNotMetFixture error"
+ "data": "OperationTimedOutThe operation could not be completed within the permitted time."
}
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ConditionNotMet"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-container-missing",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "delete container missing",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object.txt",
- "op": "delete"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -39314,7 +70319,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -39322,7 +70327,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object.txt"
+ "value": "/fixture"
}
},
{
@@ -39332,168 +70337,60 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ContainerNotFound"
},
- "body": {
- "encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ContainerNotFound"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-current-version",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "delete current version",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/versions-mtypy4jp/object.txt",
- "op": "delete",
- "version": "none-2"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
+ "value": "list"
}
},
{
- "at": "/body_base64",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/board/"
}
},
{
- "at": "/query/versionid",
+ "at": "/query/maxresults",
"optional": false,
"rule": {
"is": "equal",
- "value": "none-2"
+ "value": "2"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 500,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "x-ms-error-code": "OperationTimedOut"
},
"body": {
"encoding": "utf8",
- "data": "InvalidQueryParameterValueFixture error"
+ "data": "OperationTimedOutThe operation could not be completed within the permitted time."
}
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidQueryParameterValue"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-if-match-current",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "delete if match current",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "if_match": "\"fixture-51797d9f787d\"",
- "key": "object-tests/remove/conditional.txt",
- "op": "delete"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -39503,7 +70400,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -39511,7 +70408,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/conditional.txt"
+ "value": "/fixture"
}
},
{
@@ -39523,106 +70420,57 @@
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-51797d9f787d\""
+ "value": "container"
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 202,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-missing",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "delete missing",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/remove/absent.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "list"
}
},
{
- "at": "/path",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/absent.txt"
+ "value": "object-tests/board/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/maxresults",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "2"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 500,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobNotFound"
+ "x-ms-error-code": "OperationTimedOut"
},
"body": {
"encoding": "utf8",
- "data": "BlobNotFoundFixture error"
+ "data": "OperationTimedOutThe operation could not be completed within the permitted time."
}
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -39639,7 +70487,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 500
}
},
{
@@ -39647,24 +70495,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "OperationTimedOut"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/delete-precondition-failed",
+ "id": "operations/azure-hns/list-key-equal-to-prefix-delimited",
"profile": "azure-hns",
"lane": "core",
- "purpose": "delete precondition failed",
+ "purpose": "list key equal to prefix delimited",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "if_match": "\"fixture-088e5dc109cf\"",
- "key": "object-tests/remove/conditional.txt",
- "op": "delete"
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/exact"
},
"exchanges": [
{
@@ -39676,7 +70524,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -39684,7 +70532,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/conditional.txt"
+ "value": "/fixture"
}
},
{
@@ -39696,29 +70544,55 @@
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-088e5dc109cf\""
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/exact"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ConditionNotMet"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "ConditionNotMetFixture error"
- }
+ "data": "object-tests/exact/object-tests/exactMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-fef6be204aeafile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
}
}
]
@@ -39726,47 +70600,116 @@
],
"expect": [
{
- "at": "/outcome",
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/exact"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-fef6be204aea"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
}
},
{
- "at": "/status",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": 412
+ "is": "array_length",
+ "value": 1
}
},
{
- "at": "/code",
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/delete-precondition-failed-code-in-body",
+ "id": "operations/azure-hns/list-key-equal-to-prefix",
"profile": "azure-hns",
"lane": "core",
- "purpose": "delete precondition failed, with the error code only in the XML body",
+ "purpose": "list key equal to prefix",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
- "origin": "constructed",
"call": {
- "if_match": "\"fixture-088e5dc109cf\"",
- "key": "object-tests/remove/conditional.txt",
- "op": "delete"
+ "op": "list_page",
+ "prefix": "object-tests/exact"
},
"exchanges": [
{
@@ -39778,7 +70721,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -39786,7 +70729,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/conditional.txt"
+ "value": "/fixture"
}
},
{
@@ -39798,28 +70741,47 @@
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-088e5dc109cf\""
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/exact"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "ConditionNotMetFixture error"
- }
+ "data": "object-tests/exactobject-tests/exactMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-fef6be204aeafile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
}
}
]
@@ -39831,40 +70793,112 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": "object-tests/exact"
}
},
{
- "at": "/code",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-fef6be204aea"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/delete-previous-version",
+ "id": "operations/azure-hns/list-many-segments",
"profile": "azure-hns",
"lane": "core",
- "purpose": "delete previous version",
+ "purpose": "list many segments",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/versions-mtypy4jp/object.txt",
- "op": "delete",
- "version": "none-1"
+ "op": "list_page",
+ "prefix": "object-tests/s/"
},
"exchanges": [
{
@@ -39876,7 +70910,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -39884,7 +70918,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
+ "value": "/fixture"
}
},
{
@@ -39896,28 +70930,47 @@
}
},
{
- "at": "/query/versionid",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "none-1"
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "InvalidQueryParameterValueFixture error"
- }
+ "data": "object-tests/s/object-tests/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-a1b39dcffaf3directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8159be643ac0directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-80c8a1f73c94directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7b0fdb4b59dddirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4f1babf5f716directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-5f419d87193edirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-c32f2de5b421directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-51d97c94b354directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-581e4ea356a1directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-5eb2172133aedirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-d32c38634d37directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-3bdc7f728acbdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8a1c17d8d892directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-53277b21dbd0directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-18b5ffb0f548directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-2250c2114935directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8ce858fcdc2bdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-d8660a5bc252directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4ec0409f150bdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-aede66c75766directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-3316748edb9bdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-f7f3bc0b3f92directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-6a1f4f7934bfdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-87c3fdda2bdadirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4d2fcc081fd8directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8956db6ae017directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7f1f55a3463bdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-44dd81206643directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-952096734190directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-db4655ce498cdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b2a6d305ae63directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-23d914b576fbdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0fe87110b578directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-55cf88c7a2e2directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-6815a7113351directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-70df51065efedirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0e76caa6ea5fdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-97f6d7ad109ddirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b7df38492c3edirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-ac2f2336ab74directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-c2a19efa033cdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b9e90b553fffdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0d7c0a17f740directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e1d35759d4acdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1389b2ea70e1directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-11c5ee820f55directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-ba489a3d8cb9directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-548645ff94c6directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b21f6737ba6cdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-23eb881b6618directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-02c3be7f3363directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-86bca962bd30directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1696791242e8directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b40699a1e1dbdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-d3fa18807e94directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-d55c43fd1f89directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-989ce64e20d6directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e6b534521353file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
}
}
]
@@ -39925,753 +70978,1144 @@
],
"expect": [
{
- "at": "/outcome",
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-a1b39dcffaf3"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/directory",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-8159be643ac0"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/directory",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s/s"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-80c8a1f73c94"
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/directory",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s/s/s"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-7b0fdb4b59dd"
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/directory",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s/s/s/s"
+ }
+ },
+ {
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/entries/4/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-4f1babf5f716"
+ }
+ },
+ {
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/directory",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s/s/s/s/s"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/entries/5/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-5f419d87193e"
+ }
+ },
+ {
+ "at": "/value/entries/5/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/directory",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/6/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s/s/s/s/s/s"
+ }
+ },
+ {
+ "at": "/value/entries/6/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/entries/6/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-c32f2de5b421"
+ }
+ },
+ {
+ "at": "/value/entries/6/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/directory",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/7/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s/s/s/s/s/s/s"
+ }
+ },
+ {
+ "at": "/value/entries/7/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/entries/7/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-51d97c94b354"
+ }
+ },
+ {
+ "at": "/value/entries/7/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/directory",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/8/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s"
+ }
+ },
+ {
+ "at": "/value/entries/8/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/entries/8/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-581e4ea356a1"
+ }
+ },
+ {
+ "at": "/value/entries/8/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/8/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/8/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/8/directory",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/9/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s"
+ }
+ },
+ {
+ "at": "/value/entries/9/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/entries/9/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-5eb2172133ae"
+ }
+ },
+ {
+ "at": "/value/entries/9/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/9/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/9/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/9/directory",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/10/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s"
+ }
+ },
+ {
+ "at": "/value/entries/10/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/entries/10/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-d32c38634d37"
+ }
+ },
+ {
+ "at": "/value/entries/10/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/10/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/10/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/10/directory",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/11/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ }
+ },
+ {
+ "at": "/value/entries/11/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/entries/11/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-3bdc7f728acb"
+ }
+ },
+ {
+ "at": "/value/entries/11/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/11/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/11/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/11/directory",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": true
+ }
+ },
+ {
+ "at": "/value/entries/12/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ }
+ },
+ {
+ "at": "/value/entries/12/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": 0
}
},
{
- "at": "/status",
+ "at": "/value/entries/12/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "fixture-8a1c17d8d892"
}
},
{
- "at": "/code",
- "optional": false,
+ "at": "/value/entries/12/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "InvalidQueryParameterValue"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-refused-for-snapshots",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/snapshots/object.txt",
- "op": "delete"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 202,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/12/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/12/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/12/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-refused",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ContainerNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/13/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/status",
+ "at": "/value/entries/13/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 0
}
},
{
- "at": "/code",
+ "at": "/value/entries/13/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "ContainerNotFound"
+ "value": "fixture-53277b21dbd0"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-snapshot",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "delete snapshot",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/snapshots/object.txt",
- "op": "delete",
- "snapshot": "2024-01-01T00:00:00.8557081Z"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/snapshot",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.8557081Z"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "BlobNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/13/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/13/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "error"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/status",
+ "at": "/value/entries/13/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/13/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": true
}
},
{
- "at": "/code",
+ "at": "/value/entries/14/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-snapshots-only",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "delete snapshots only",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/snapshots-only/object.txt",
- "op": "delete",
- "snapshots": "only"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/snapshots-only/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-ms-delete-snapshots",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "only"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "BlobNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/14/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": 0
}
},
{
- "at": "/status",
+ "at": "/value/entries/14/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": "fixture-18b5ffb0f548"
}
},
{
- "at": "/code",
+ "at": "/value/entries/14/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/14/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/14/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/14/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": true
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-unauthenticated",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/remove/absent.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/remove/absent.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 401,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "InvalidAuthenticationInfo"
- },
- "body": {
- "encoding": "utf8",
- "data": "InvalidAuthenticationInfoFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/15/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/status",
+ "at": "/value/entries/15/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 401
+ "value": 0
}
},
{
- "at": "/code",
+ "at": "/value/entries/15/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidAuthenticationInfo"
+ "value": "fixture-2250c2114935"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-versioned-object",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "delete versioned object",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/versions-mtypy4jp/deleted.txt",
- "op": "delete"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 202,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/15/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/15/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/15/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/15/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-with-snapshots",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "delete with snapshots",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/snapshots-all/object.txt",
- "op": "delete",
- "snapshots": "include"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/snapshots-all/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-ms-delete-snapshots",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "include"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 202,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/16/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-after-snapshots-deleted",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get after snapshots deleted",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/snapshots-only/object.txt",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/snapshots-only/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "TYtghPPRZ7dsrGaiKpG+Ag==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-8fc260370f1a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "a2VwdA=="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/16/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/16/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "fixture-8ce858fcdc2b"
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/16/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/16/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/16/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/16/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-8fc260370f1a\""
+ "value": true
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/17/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 4
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/17/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": 0
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/17/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "TYtghPPRZ7dsrGaiKpG+Ag=="
+ "value": "fixture-d8660a5bc252"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/17/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -40682,103 +72126,45 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/17/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "a2VwdA=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-committed-nothing",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get committed nothing",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/multipart/empty.bin",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/multipart/empty.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-072bed78cc6a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/17/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/17/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/18/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-072bed78cc6a\""
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/18/size",
"optional": false,
"rule": {
"is": "equal",
@@ -40786,15 +72172,15 @@
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/18/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-4ec0409f150b"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/18/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -40805,119 +72191,61 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/18/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-committed-over-whole-object",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get committed over whole object",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/multipart/over.bin",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/multipart/over.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-7dc650e58291\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "YmxvY2s="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/18/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/18/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/19/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-7dc650e58291\""
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/19/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 5
+ "value": 0
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/19/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-aede66c75766"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/19/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -40928,119 +72256,61 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/19/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "YmxvY2s="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-committed",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get committed",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/multipart/committed.bin",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/multipart/committed.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-8ec031f3abfa\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "Zmlyc3RzZWNvbmQ="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/19/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/19/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/20/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-8ec031f3abfa\""
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/20/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 11
+ "value": 0
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/20/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-3316748edb9b"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/20/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -41051,1054 +72321,386 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/20/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "Zmlyc3RzZWNvbmQ="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-container-missing",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get container missing",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object.txt",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ContainerNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/20/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/20/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": true
}
},
{
- "at": "/status",
+ "at": "/value/entries/21/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/code",
+ "at": "/value/entries/21/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ContainerNotFound"
+ "value": 0
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/list-containers",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "List the containers whose names start with a prefix",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/list-containers2"
- ],
- "call": {
- "op": "azure.list_containers",
- "prefix": "otc-listed-"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "otc-listed-"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "otc-listed-otc-listed-aMon, 01 Jan 2024 00:00:00 GMT\"fixture-etag\"unlockedavailablefalsefalseotc-listed-bMon, 01 Jan 2024 00:00:00 GMT\"fixture-etag\"unlockedavailablefalsefalse"
- },
- "framing": "chunked"
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/21/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "fixture-f7f3bc0b3f92"
}
},
{
- "at": "/value/containers",
- "optional": false,
+ "at": "/value/entries/21/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": [
- "otc-listed-a",
- "otc-listed-b"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/container-properties-absent",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Report a missing container when reading its properties",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-container-properties"
- ],
- "call": {
- "container": "otc-absent",
- "op": "azure.container_properties"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/otc-absent"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ContainerNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/21/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/21/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "error"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/status",
+ "at": "/value/entries/21/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": true
}
},
{
- "at": "/code",
+ "at": "/value/entries/22/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "ContainerNotFound"
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/container-properties",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Read the properties of a container",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-container-properties"
- ],
- "call": {
- "container": "otc-read",
- "op": "azure.container_properties"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/otc-read"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-has-immutability-policy": "false",
- "x-ms-has-legal-hold": "false",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked"
- },
- "body": {
- "encoding": "empty"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/22/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": 0
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-container-absent",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Report a missing container on delete",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/delete-container"
- ],
- "call": {
- "container": "otc-absent",
- "op": "azure.delete_container"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/otc-absent"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ContainerNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/22/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "fixture-6a1f4f7934bf"
}
},
{
- "at": "/status",
- "optional": false,
+ "at": "/value/entries/22/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": 404
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/code",
- "optional": false,
+ "at": "/value/entries/22/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "ContainerNotFound"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/delete-container",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Delete a container",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/delete-container"
- ],
- "call": {
- "container": "otc-deleted",
- "op": "azure.delete_container"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/otc-deleted"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 202,
- "headers": {
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "empty"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/22/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/22/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/create-container-invalid-name",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Refuse a container name with capitals and an underscore",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata"
- ],
- "call": {
- "container": "Otc_Invalid",
- "op": "azure.create_container"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/Otc_Invalid"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 400,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "InvalidResourceName"
- },
- "body": {
- "encoding": "utf8",
- "data": "InvalidResourceNameFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/23/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/status",
+ "at": "/value/entries/23/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": 0
}
},
{
- "at": "/code",
+ "at": "/value/entries/23/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidResourceName"
+ "value": "fixture-87c3fdda2bda"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/create-container-exists",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Refuse to create a container that exists",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/create-container"
- ],
- "call": {
- "container": "otc-existing",
- "op": "azure.create_container"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/otc-existing"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 409,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ContainerAlreadyExists"
- },
- "body": {
- "encoding": "utf8",
- "data": "ContainerAlreadyExistsFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/23/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/23/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/23/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/23/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": true
}
},
{
- "at": "/status",
+ "at": "/value/entries/24/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 409
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/code",
+ "at": "/value/entries/24/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ContainerAlreadyExists"
+ "value": 0
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/create-container",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Create a container",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/create-container"
- ],
- "call": {
- "container": "otc-created",
- "op": "azure.create_container"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/otc-created"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 201,
- "headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "empty"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/24/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "fixture-4d2fcc081fd8"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-current-version-of-deleted-object",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get current version of deleted object",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/versions-mtypy4jp/deleted.txt",
- "op": "get",
- "version": "none-2"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/versionid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "none-2"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 400,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "InvalidQueryParameterValueFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/24/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/24/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/24/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/24/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": true
}
},
{
- "at": "/status",
+ "at": "/value/entries/25/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/code",
+ "at": "/value/entries/25/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidQueryParameterValue"
+ "value": 0
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-current-version",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get current version",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/versions-mtypy4jp/object.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-ecff54f15562\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "djI="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/25/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "fixture-8956db6ae017"
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/25/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/25/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/25/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/25/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ecff54f15562\""
+ "value": true
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/26/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 2
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/26/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": 0
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/26/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "GyZ2GcSBLMRu4oF0eITKUA=="
+ "value": "fixture-7f1f55a3463b"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/26/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -42109,308 +72711,191 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/26/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/26/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/26/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "djI="
+ "value": true
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-deleted-snapshot",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get deleted snapshot",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/snapshots/object.txt",
- "op": "get",
- "snapshot": "2024-01-01T00:00:00.8557081Z"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/snapshot",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.8557081Z"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "BlobNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/27/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/status",
+ "at": "/value/entries/27/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 0
}
},
{
- "at": "/code",
+ "at": "/value/entries/27/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "fixture-44dd81206643"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-deleted-versioned-object",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get deleted versioned object",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/versions-mtypy4jp/deleted.txt",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "BlobNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/27/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/27/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/27/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/27/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": true
}
},
{
- "at": "/status",
+ "at": "/value/entries/28/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/code",
+ "at": "/value/entries/28/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": 0
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-duplicate-id",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get duplicate id",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/multipart/duplicate.bin",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/multipart/duplicate.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-a8581b642c5f\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "c2FtZXNhbWU="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/28/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-952096734190"
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/28/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/28/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/28/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/28/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/29/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-a8581b642c5f\""
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/29/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 8
+ "value": 0
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/29/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-db4655ce498c"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/29/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -42421,104 +72906,45 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/29/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "c2FtZXNhbWU="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-empty",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get empty",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/write/empty.bin",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/write/empty.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "1B2M2Y8AsgTpgAmY7PhCfg==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-9373f0410116\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/29/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/29/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/30/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-9373f0410116\""
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/30/size",
"optional": false,
"rule": {
"is": "equal",
@@ -42526,23 +72952,26 @@
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/30/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-b2a6d305ae63"
}
},
{
- "at": "/value/content_md5_base64",
- "optional": false,
+ "at": "/value/entries/30/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "1B2M2Y8AsgTpgAmY7PhCfg=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/30/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -42553,137 +72982,61 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/30/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-if-match-current",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get if match current",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "if_match": "\"fixture-5295cdfd25ff\"",
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/30/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/31/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/31/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 0
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/31/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-23d914b576fb"
}
},
{
- "at": "/value/content_md5_base64",
- "optional": false,
+ "at": "/value/entries/31/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/31/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -42694,137 +73047,115 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/31/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/31/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": true
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-if-none-match-other",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get if none match other",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "if_none_match": "\"fixture-088e5dc109cf\"",
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/if-none-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-088e5dc109cf\""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/32/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/32/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": 0
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/32/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "fixture-0fe87110b578"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/32/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/32/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/32/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/32/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": true
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/33/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/33/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": 0
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/33/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-55cf88c7a2e2"
+ }
+ },
+ {
+ "at": "/value/entries/33/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -42835,128 +73166,61 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/33/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-key-with-hash",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get key with hash",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/names/hash#tag.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/names/hash#tag.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-ed49e7da63af\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MQ=="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/33/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/33/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ed49e7da63af\""
+ "value": true
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/34/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/34/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": 0
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/34/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "fixture-6815a7113351"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/34/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -42967,128 +73231,61 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/34/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "MQ=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-key-with-percent",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get key with percent",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/names/percent%20.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/names/percent%20.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-c4ca668cf15e\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MQ=="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/34/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/34/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-c4ca668cf15e\""
+ "value": true
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/35/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/35/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": 0
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/35/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "fixture-70df51065efe"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/35/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -43099,128 +73296,72 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/35/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "MQ=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-key-with-plus",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get key with plus",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/names/plus+plus.txt",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/names/plus+plus.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-f09c0f273191\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MQ=="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/35/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/35/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/36/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-f09c0f273191\""
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/36/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 0
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/36/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-0e76caa6ea5f"
}
},
{
- "at": "/value/content_md5_base64",
- "optional": false,
+ "at": "/value/entries/36/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/36/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -43231,492 +73372,245 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/36/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/36/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": true
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-key-with-space",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get key space",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
- ],
- "call": {
- "key": "a b",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/a b"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
- },
- "body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/37/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/37/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": 0
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/37/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": "fixture-97f6d7ad109d"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-key-with-question",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get key question",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
- ],
- "call": {
- "key": "a?b",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/a?b"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
- },
- "body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/37/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/37/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/37/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/37/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/38/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-key-with-non-ascii",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get key unicode",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
- ],
- "call": {
- "key": "café/雪",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/café/雪"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
- },
- "body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/38/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": 0
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/38/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": "fixture-b7df38492c3e"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-key-with-separators",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get key separators",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
- ],
- "call": {
- "key": "a//b/",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/a//b/"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "BlobNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/38/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/38/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/38/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/38/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": true
}
},
{
- "at": "/status",
+ "at": "/value/entries/39/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/code",
+ "at": "/value/entries/39/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": 0
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-metadata-empty-value",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get metadata empty value",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/metadata/empty-value.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/metadata/empty-value.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-18852ad86043\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-meta-empty": "",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MQ=="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/39/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "fixture-ac2f2336ab74"
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/39/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/39/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/39/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/39/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-18852ad86043\""
+ "value": true
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/40/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/40/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": 0
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/40/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "fixture-c2a19efa033c"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/40/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -43727,237 +73621,126 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/40/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "MQ=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/metadata",
+ "at": "/value/entries/40/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/40/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "empty": ""
- }
+ "value": true
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-metadata-of-snapshot",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get metadata of snapshot",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/metadata/snapshotted.txt",
- "op": "get",
- "snapshot": "2024-01-01T00:00:00.1577201Z"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/metadata/snapshotted.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/snapshot",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.1577201Z"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "BlobNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/41/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/status",
+ "at": "/value/entries/41/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 0
}
},
{
- "at": "/code",
+ "at": "/value/entries/41/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "fixture-b9e90b553fff"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-metadata-replaced",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get metadata replaced",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/metadata/replaced.txt",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/metadata/replaced.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-c24dabf9e117\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "Mg=="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/41/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/41/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/41/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/41/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-c24dabf9e117\""
+ "value": true
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/42/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/42/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": 0
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/42/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "yB5yjZ1ML2NvBn+JzBSGLA=="
+ "value": "fixture-0d7c0a17f740"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/42/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -43968,130 +73751,72 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/42/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "Mg=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-metadata",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get metadata",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/metadata/object.txt",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/metadata/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-4d04dba3441e\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-meta-name": "value",
- "x-ms-meta-second": "2",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MQ=="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/42/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/42/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/43/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-4d04dba3441e\""
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/43/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 0
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/43/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-e1d35759d4ac"
}
},
{
- "at": "/value/content_md5_base64",
- "optional": false,
+ "at": "/value/entries/43/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/43/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -44102,888 +73827,321 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/43/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "MQ=="
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/value/metadata",
+ "at": "/value/entries/43/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "name": "value",
- "second": "2"
- }
+ "value": true
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-metadata-ignores-unknown-headers",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Surface user metadata; unknown headers must not become metadata.",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
- ],
- "call": {
- "key": "object",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-meta-author": "Ada",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03",
- "x-unrelated": "not metadata"
- },
- "body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/44/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/44/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": 0
}
},
{
- "at": "/value/metadata",
+ "at": "/value/entries/44/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "author": "Ada"
- }
+ "value": "fixture-1389b2ea70e1"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-missing",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get missing",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/read/absent.txt",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/absent.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "BlobNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/44/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/44/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "error"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/status",
- "optional": false,
+ "at": "/value/entries/44/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": 404
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/code",
+ "at": "/value/entries/44/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": true
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-missing-code-in-body",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get missing, with the error code only in the XML body",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
- ],
- "origin": "constructed",
- "call": {
- "key": "object-tests/read/absent.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/absent.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/45/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/status",
+ "at": "/value/entries/45/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 0
}
},
{
- "at": "/code",
+ "at": "/value/entries/45/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "fixture-11c5ee820f55"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-not-modified",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get not modified",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "if_none_match": "\"fixture-5295cdfd25ff\"",
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/if-none-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 304,
- "headers": {
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ConditionNotMet"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/45/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/45/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "error"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/status",
- "optional": false,
+ "at": "/value/entries/45/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": 304
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/code",
+ "at": "/value/entries/45/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": true
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-precondition-failed",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get precondition failed",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "if_match": "\"fixture-088e5dc109cf\"",
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-088e5dc109cf\""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 412,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ConditionNotMet"
- },
- "body": {
- "encoding": "utf8",
- "data": "ConditionNotMetFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/46/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/status",
+ "at": "/value/entries/46/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": 0
}
},
{
- "at": "/code",
+ "at": "/value/entries/46/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": "fixture-ba489a3d8cb9"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-previous-version-of-deleted-object",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get previous version of deleted object",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/versions-mtypy4jp/deleted.txt",
- "op": "get",
- "version": "none-1"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/versions-mtypy4jp/deleted.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/versionid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "none-1"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 400,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "InvalidQueryParameterValueFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/46/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/46/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "error"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/status",
- "optional": false,
+ "at": "/value/entries/46/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": 400
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/code",
+ "at": "/value/entries/46/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidQueryParameterValue"
+ "value": true
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-previous-version",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get previous version",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/versions-mtypy4jp/object.txt",
- "op": "get",
- "version": "none-1"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/versionid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "none-1"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 400,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "InvalidQueryParameterValueFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/47/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/status",
+ "at": "/value/entries/47/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": 0
}
},
{
- "at": "/code",
+ "at": "/value/entries/47/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidQueryParameterValue"
+ "value": "fixture-548645ff94c6"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-range-inverted",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get range inverted",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 2,
- "start": 6
- }
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=6-1"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-ms-range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=6-1"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/47/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/47/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/47/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/47/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/48/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/48/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 0
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/48/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-b21f6737ba6c"
}
},
{
- "at": "/value/content_md5_base64",
- "optional": false,
+ "at": "/value/entries/48/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/48/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -44994,372 +74152,180 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/48/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/48/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": true
}
- }
- ],
- "refusal": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/49/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "refused"
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/kind",
+ "at": "/value/entries/49/size",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": ".+"
+ "is": "equal",
+ "value": 0
}
},
{
- "at": "/parameter",
+ "at": "/value/entries/49/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "range"
+ "value": "fixture-23eb881b6618"
}
- }
- ],
- "decline_permitted": true
- },
- {
- "id": "operations/azure-hns/get-range-not-satisfiable",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get range not satisfiable",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "start": 40
- }
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=40-"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 416,
- "headers": {
- "content-range": "bytes */30",
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "InvalidRange"
- },
- "body": {
- "encoding": "utf8",
- "data": "InvalidRangeFixture error"
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-ms-range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=40-"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 416,
- "headers": {
- "content-range": "bytes */30",
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "InvalidRange"
- },
- "body": {
- "encoding": "utf8",
- "data": "InvalidRangeFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/49/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/49/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/49/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/49/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": true
}
},
{
- "at": "/status",
+ "at": "/value/entries/50/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 416
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/code",
+ "at": "/value/entries/50/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidRange"
+ "value": 0
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-range-past-the-end",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get range past the end",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 64,
- "start": 28
- }
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=28-63"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 28-29/30",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "Y3Q="
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-ms-range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=28-63"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 28-29/30",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "Y3Q="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/50/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-02c3be7f3363"
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/50/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/50/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/50/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/50/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/51/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/51/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 2
+ "value": 0
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/51/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-86bca962bd30"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/51/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -45370,191 +74336,61 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/51/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "Y3Q="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-range-single-byte",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get range single byte",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 1,
- "start": 0
- }
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=0-0"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 0-0/30",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MA=="
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-ms-range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=0-0"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 0-0/30",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MA=="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/51/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/51/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/52/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/52/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 0
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/52/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-1696791242e8"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/52/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -45565,191 +74401,61 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/52/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "MA=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-range",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get range",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 6,
- "start": 2
- }
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=2-5"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 2-5/30",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MjM0NQ=="
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-ms-range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=2-5"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 2-5/30",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MjM0NQ=="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/52/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/52/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/53/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/53/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 4
+ "value": 0
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/53/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-b40699a1e1db"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/53/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -45760,284 +74466,126 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/53/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/53/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/53/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "MjM0NQ=="
+ "value": true
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-range-open",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get range open",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
- ],
- "call": {
- "key": "object",
- "op": "get",
- "range": {
- "start": 3
- }
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=3-"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 3-4/5",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
- },
- "body": {
- "encoding": "base64",
- "data": "bG8="
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-ms-range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=3-"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 3-4/5",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
- },
- "body": {
- "encoding": "base64",
- "data": "bG8="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/54/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/54/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/entries/54/etag",
"optional": false,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "equal",
+ "value": "fixture-d3fa18807e94"
+ }
+ },
+ {
+ "at": "/value/entries/54/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/54/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/54/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "bG8="
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-reordered",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get reordered",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/multipart/reordered.bin",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/multipart/reordered.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-446301cfeaef\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "c2Vjb25kZmlyc3Q="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/54/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/55/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-446301cfeaef\""
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/55/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 11
+ "value": 0
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/55/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-d55c43fd1f89"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/55/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -46048,119 +74596,61 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/55/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "c2Vjb25kZmlyc3Q="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-replacement",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get replacement",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/multipart/replaced.bin",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/multipart/replaced.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-9c5e55ff559c\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "RklSU1Q="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/55/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/55/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/56/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-9c5e55ff559c\""
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/56/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 5
+ "value": 0
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/56/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-989ce64e20d6"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/56/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -46171,219 +74661,139 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/56/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/56/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/56/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "RklSU1Q="
+ "value": true
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-snapshot",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get snapshot",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/snapshots/object.txt",
- "op": "get",
- "snapshot": "2024-01-01T00:00:00.1577201Z"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/snapshot",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.1577201Z"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "BlobNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/57/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
}
},
{
- "at": "/status",
+ "at": "/value/entries/57/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 1
}
},
{
- "at": "/code",
+ "at": "/value/entries/57/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "fixture-e6b534521353"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-staged-only",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get staged only",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/multipart/staged.bin",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "BlobNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/57/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/57/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/57/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/57/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
}
},
{
- "at": "/status",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": 404
+ "is": "array_length",
+ "value": 58
}
},
{
- "at": "/code",
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/get-suffix-longer-than-object",
+ "id": "operations/azure-hns/list-max-keys-zero",
"profile": "azure-hns",
"lane": "core",
- "purpose": "get suffix longer than object",
+ "purpose": "list max keys zero",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "suffix": 100
- }
+ "op": "list_page",
+ "page_size": 0,
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -46403,7 +74813,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -46415,94 +74825,52 @@
}
},
{
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=-100"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "list"
}
},
{
- "at": "/body_base64",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/board/"
}
},
{
- "at": "/headers/x-ms-range",
+ "at": "/query/maxresults",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=-100"
+ "value": "0"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
+ "x-ms-error-code": "OutOfRangeQueryParameterValue"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "encoding": "utf8",
+ "data": "OutOfRangeQueryParameterValueFixture error"
}
}
}
@@ -46515,58 +74883,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "application/octet-stream"
+ "value": "error"
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": 400
}
},
{
- "at": "/value/body_base64",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": "OutOfRangeQueryParameterValue"
}
}
],
@@ -46592,26 +74925,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "range"
+ "value": "page_size"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "OutOfRangeQueryParameterValue"
}
}
- ],
- "decline_permitted": true
+ ]
},
{
- "id": "operations/azure-hns/get-suffix",
+ "id": "operations/azure-hns/list-metadata",
"profile": "azure-hns",
"lane": "core",
- "purpose": "get suffix",
+ "purpose": "list metadata",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "suffix": 6
- }
+ "include": [
+ "metadata"
+ ],
+ "op": "list_page",
+ "prefix": "object-tests/metadata-listed/"
},
"exchanges": [
{
@@ -46631,7 +74979,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -46643,70 +74991,35 @@
}
},
{
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=-6"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "list"
}
},
{
- "at": "/body_base64",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/metadata-listed/"
}
},
{
- "at": "/headers/x-ms-range",
+ "at": "/query/include",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=-6"
+ "value": "metadata"
}
}
],
@@ -46715,23 +75028,18 @@
"response": {
"status": 200,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "object-tests/metadata-listed/object-tests/metadata-listed/plain.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-a2cc4a9b7156file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/metadata-listed/shadowed.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-3471a2a78a02file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletruex"
+ },
+ "framing": "chunked"
}
}
]
@@ -46747,39 +75055,42 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "object-tests/metadata-listed/plain.txt"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 1
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-a2cc4a9b7156"
}
},
{
- "at": "/value/content_md5_base64",
- "optional": false,
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -46790,341 +75101,150 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
- }
- ],
- "refusal": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/0/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "refused"
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
}
},
{
- "at": "/kind",
+ "at": "/value/entries/1/key",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": ".+"
+ "is": "equal",
+ "value": "object-tests/metadata-listed/shadowed.txt"
}
},
{
- "at": "/parameter",
+ "at": "/value/entries/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "range"
+ "value": 1
}
- }
- ],
- "decline_permitted": true
- },
- {
- "id": "operations/azure-hns/get-unauthenticated",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 401,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "InvalidAuthenticationInfo"
- },
- "body": {
- "encoding": "utf8",
- "data": "InvalidAuthenticationInfoFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/1/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "fixture-3471a2a78a02"
}
},
{
- "at": "/status",
- "optional": false,
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": 401
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/code",
- "optional": false,
+ "at": "/value/entries/1/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "InvalidAuthenticationInfo"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-unknown-snapshot",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get unknown snapshot",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/snapshots/object.txt",
- "op": "get",
- "snapshot": "2024-01-01T00:00:00.4364169Z"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/snapshot",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.4364169Z"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "BlobNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/1/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
}
},
{
- "at": "/status",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": 404
+ "is": "array_length",
+ "value": 2
}
},
{
- "at": "/code",
+ "at": "/value/prefixes",
"optional": false,
"rule": {
- "is": "equal",
- "value": "BlobNotFound"
+ "is": "array_length",
+ "value": 0
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-unknown-version",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get unknown version",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/versions-mtypy4jp/object.txt",
- "op": "get",
- "version": "2024-01-01T00:00:00.4364169Z"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/versionid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.4364169Z"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 409,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
- },
- "body": {
- "encoding": "utf8",
- "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": ""
}
},
{
- "at": "/status",
+ "at": "/value/entries/0/metadata",
"optional": false,
"rule": {
"is": "equal",
- "value": 409
+ "value": {
+ "label": "c"
+ }
}
},
{
- "at": "/code",
+ "at": "/value/entries/1/metadata",
"optional": false,
"rule": {
"is": "equal",
- "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ "value": {
+ "Metadata": "x",
+ "label": "b"
+ }
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/get-whole",
+ "id": "operations/azure-hns/list-next-page",
"profile": "azure-hns",
"lane": "core",
- "purpose": "get whole",
+ "purpose": "list next page",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "continuation_token": "fixture-marker+/17aa95c4a402=",
+ "op": "list_page",
+ "page_size": 2,
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -47144,7 +75264,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -47154,6 +75274,46 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/marker",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/17aa95c4a402="
+ }
}
],
"allow_headers": [],
@@ -47161,23 +75321,18 @@
"response": {
"status": 200,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "object-tests/board/fixture-marker+/17aa95c4a402=2object-tests/board/nested/c.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4125625a1056file1application/octet-streamSooI8J03tzeVZJA4QItfMw==BlockBlobHottrueunlockedavailabletrueobject-tests/board/z.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0d608f7e2d51file2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
}
}
]
@@ -47193,39 +75348,96 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "object-tests/board/nested/c.txt"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 1
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-4125625a1056"
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": "SooI8J03tzeVZJA4QItfMw=="
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/z.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-0d608f7e2d51"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -47236,119 +75448,74 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": "Je0by0I7C3IA9IX8X/ccjg=="
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-xml-looking",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get xml looking",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
- ],
- "call": {
- "key": "object",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
- },
- "body": {
- "encoding": "base64",
- "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/prefixes",
"optional": false,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/get-noise-tolerance",
+ "id": "operations/azure-hns/list-pagination",
"profile": "azure-hns",
"lane": "core",
- "purpose": "get noise tolerance",
+ "purpose": "list pagination",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
],
- "origin": "constructed",
"call": {
- "key": "object",
- "op": "get"
+ "op": "list",
+ "page_size": 1,
+ "prefix": ""
},
"exchanges": [
{
@@ -47368,7 +75535,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/fixture"
}
},
{
@@ -47378,100 +75545,38 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"a-different-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-fixture-unknown": "ignored",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "another-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
},
- "body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "aGVsbG8="
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-body-cut-short",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Report a body that ends before its Content-Length as an error, or resume it, but never return the short body",
- "sources": [
- "https://www.rfc-editor.org/rfc/rfc9112#section-8",
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_client.cpp"
- ],
- "origin": "transient",
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "list"
}
},
{
- "at": "/body_base64",
- "optional": false,
+ "at": "/query/prefix",
+ "optional": true,
"rule": {
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/maxresults",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
}
],
"allow_headers": [],
@@ -47479,24 +75584,26 @@
"response": {
"status": 200,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-5295cdfd25ff\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
"x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
"x-ms-lease-state": "available",
"x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+Zmlyc3Q8L05hbWU+PFByb3BlcnRpZXM+PExhc3QtTW9kaWZpZWQ+TW9uLCAwMSBKYW4gMjAyNCAwMDowMDowMCBHTVQ8L0xhc3QtTW9kaWZpZWQ+PEV0YWc+ImZpeHR1cmUiPC9FdGFnPjxDb250ZW50LUxlbmd0aD41PC9Db250ZW50LUxlbmd0aD48QmxvYlR5cGU+QmxvY2tCbG9iPC9CbG9iVHlwZT48L1Byb3BlcnRpZXM+PC9CbG9iPjwvQmxvYnM+PE5leHRNYXJrZXI+b3BhcXVlKy89PC9OZXh0TWFya2VyPjwvRW51bWVyYXRpb25SZXN1bHRzPg=="
},
- "truncate_body_after": 15
+ "framing": "chunked"
}
}
]
@@ -47518,7 +75625,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -47528,101 +75635,117 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
},
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- },
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "list"
}
},
{
- "at": "/body_base64",
+ "at": "/query/marker",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "opaque+/="
}
},
{
- "at": "/headers/range",
- "optional": false,
+ "at": "/query/prefix",
+ "optional": true,
"rule": {
"is": "equal",
- "value": "bytes=15-"
+ "value": ""
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/maxresults",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "1"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 15-29/30",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-5295cdfd25ff\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
"x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
"x-ms-lease-state": "available",
"x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
},
"body": {
"encoding": "base64",
- "data": "Y3QtdGVzdHMtb2JqZWN0"
- }
+ "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+c2Vjb25kPC9OYW1lPjxQcm9wZXJ0aWVzPjxMYXN0LU1vZGlmaWVkPk1vbiwgMDEgSmFuIDIwMjQgMDA6MDA6MDAgR01UPC9MYXN0LU1vZGlmaWVkPjxFdGFnPiJmaXh0dXJlIjwvRXRhZz48Q29udGVudC1MZW5ndGg+NTwvQ29udGVudC1MZW5ndGg+PEJsb2JUeXBlPkJsb2NrQmxvYjwvQmxvYlR5cGU+PC9Qcm9wZXJ0aWVzPjwvQmxvYj48L0Jsb2JzPjxOZXh0TWFya2VyPjwvTmV4dE1hcmtlcj48L0VudW1lcmF0aW9uUmVzdWx0cz4="
+ },
+ "framing": "chunked"
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ "first",
+ "second"
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/list-order-delimited",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "list order delimited",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/order/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -47638,7 +75761,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -47650,86 +75773,562 @@
}
},
{
- "at": "/headers/x-ms-range",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=15-"
+ "value": "container"
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 15-29/30",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "Y3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "object-tests/order//object-tests/order/AMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-033751098c10file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/aMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1450d5552b20file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a-bMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-179d07a80272file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-5d99f4a9cbbefile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a0Mon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e5b8569421a3file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/bMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-2ccf5ed23a16file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/éMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-cb02153208adfile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
{
"at": "/outcome",
"optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/A"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-033751098c10"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
"rule": {
"is": "one_of",
"values": [
- "error",
- "ok"
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-1450d5552b20"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a-b"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-179d07a80272"
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-5d99f4a9cbbe"
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a0"
+ }
+ },
+ {
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/4/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-e5b8569421a3"
+ }
+ },
+ {
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/b"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/5/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-2ccf5ed23a16"
+ }
+ },
+ {
+ "at": "/value/entries/5/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/6/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/é"
+ }
+ },
+ {
+ "at": "/value/entries/6/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/6/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-cb02153208ad"
+ }
+ },
+ {
+ "at": "/value/entries/6/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
]
}
},
{
- "at": "/value/body_base64",
- "optional": true,
+ "at": "/value/entries/6/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 7
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/get-server-busy",
+ "id": "operations/azure-hns/list-order",
"profile": "azure-hns",
"lane": "core",
- "purpose": "Report a 503 ServerBusy answer as an error, after at most 5 retries",
+ "purpose": "list order",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
- "origin": "transient",
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "op": "list_page",
+ "prefix": "object-tests/order/"
},
"exchanges": [
{
@@ -47749,7 +76348,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -47759,412 +76358,556 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ServerBusy"
},
- "body": {
- "encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "container"
}
},
{
- "at": "/path",
+ "at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "list"
}
},
{
- "at": "/body_base64",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/order/"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ServerBusy"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
+ "data": "object-tests/order/object-tests/order/AMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-033751098c10file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/aMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1450d5552b20file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a-bMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-179d07a80272file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-5d99f4a9cbbefile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a0Mon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e5b8569421a3file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/bMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-2ccf5ed23a16file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/éMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-cb02153208adfile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
},
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ServerBusy"
- },
- "body": {
- "encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
- }
- }
- ],
- "optional": true
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/A"
+ }
},
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ServerBusy"
- },
- "body": {
- "encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
- }
- }
- ],
- "optional": true
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
},
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ServerBusy"
- },
- "body": {
- "encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
- }
- }
- ],
- "optional": true
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-033751098c10"
+ }
},
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ServerBusy"
- },
- "body": {
- "encoding": "utf8",
- "data": "ServerBusyThe server is currently unable to receive requests. Please retry your request."
- }
- }
- }
- ],
- "optional": true
- }
- ],
- "expect": [
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
}
},
{
- "at": "/status",
+ "at": "/value/entries/1/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 503
+ "value": "object-tests/order/a"
}
},
{
- "at": "/code",
+ "at": "/value/entries/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ServerBusy"
+ "value": 1
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-if-unmodified-since-past",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/if-unmodified-since",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 412,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ConditionNotMet"
- },
- "body": {
- "encoding": "utf8",
- "data": "ConditionNotMetFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-1450d5552b20"
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
}
},
{
- "at": "/status",
+ "at": "/value/entries/2/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": "object-tests/order/a-b"
}
},
{
- "at": "/code",
+ "at": "/value/entries/2/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-179d07a80272"
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-5d99f4a9cbbe"
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a0"
+ }
+ },
+ {
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/4/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-e5b8569421a3"
+ }
+ },
+ {
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/b"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/5/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-2ccf5ed23a16"
+ }
+ },
+ {
+ "at": "/value/entries/5/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries/6/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/é"
+ }
+ },
+ {
+ "at": "/value/entries/6/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/6/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-cb02153208ad"
+ }
+ },
+ {
+ "at": "/value/entries/6/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 7
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/get-if-modified-since-future",
+ "id": "operations/azure-hns/list-all-order",
"profile": "azure-hns",
"lane": "core",
- "purpose": "Report 304 when If-Modified-Since names a future date, which Azure does not ignore",
+ "purpose": "list order",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
],
"call": {
- "if_modified_since": "Fri, 01 Jan 2100 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "op": "list",
+ "prefix": ""
},
"exchanges": [
{
@@ -48184,7 +76927,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -48196,27 +76939,55 @@
}
},
{
- "at": "/headers/if-modified-since",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "Fri, 01 Jan 2100 00:00:00 GMT"
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 304,
+ "status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ConditionNotMet"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-type": "BlockBlob",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-state": "available",
+ "x-ms-lease-status": "unlocked",
+ "x-ms-request-id": "fixture-request-id",
+ "x-ms-request-server-encrypted": "true",
+ "x-ms-server-encrypted": "true",
+ "x-ms-version": "2023-11-03"
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "base64",
+ "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+YTwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PEJsb2I+PE5hbWU+ejwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PC9CbG9icz48TmV4dE1hcmtlcj48L05leHRNYXJrZXI+PC9FbnVtZXJhdGlvblJlc3VsdHM+"
+ },
+ "framing": "chunked"
}
}
]
@@ -48228,40 +76999,34 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 304
+ "value": "ok"
}
},
{
- "at": "/code",
+ "at": "/value/keys",
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": [
+ "a",
+ "z"
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/get-if-modified-since-past",
+ "id": "operations/azure-hns/list-page",
"profile": "azure-hns",
"lane": "core",
- "purpose": "Read an object modified since a past date",
+ "purpose": "list page",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "if_modified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "op": "list_page",
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -48281,7 +77046,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -48293,11 +77058,27 @@
}
},
{
- "at": "/headers/if-modified-since",
+ "at": "/query/restype",
"optional": false,
"rule": {
"is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
}
}
],
@@ -48306,23 +77087,18 @@
"response": {
"status": 200,
"headers": {
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "object-tests/board/object-tests/board/a.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e8a4acb31ab1file8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nestedMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-bcf8c9e06f70directory0BlockBlobHottrueunlockedavailabletrueobject-tests/board/nested/c.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4125625a1056file1application/octet-streamSooI8J03tzeVZJA4QItfMw==BlockBlobHottrueunlockedavailabletrueobject-tests/board/z.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0d608f7e2d51file2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
}
}
]
@@ -48338,39 +77114,42 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "object-tests/board/a.txt"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 8
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-e8a4acb31ab1"
}
},
{
- "at": "/value/content_md5_base64",
- "optional": false,
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -48381,129 +77160,61 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-content-encoding-gzip",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Return the stored gzip bytes and Content-Encoding: gzip without decoding them",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-encoding": "gzip",
- "content-md5": "CVsDGvNMZH4SPA4MSLswrA==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/0/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/1/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "object-tests/board/nested"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 42
+ "value": 0
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/1/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-bcf8c9e06f70"
}
},
{
- "at": "/value/content_md5_base64",
- "optional": false,
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "CVsDGvNMZH4SPA4MSLswrA=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/1/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -48514,131 +77225,61 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/value/content_encoding",
+ "at": "/value/entries/1/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "gzip"
+ "value": true
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-content-properties",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Return the stored content properties from a GET",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "cache-control": "max-age=3600",
- "content-disposition": "attachment; filename=\"report.txt\"",
- "content-language": "nl-NL",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "text/plain; charset=utf-8",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/2/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "object-tests/board/nested/c.txt"
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/2/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": 1
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/2/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": "fixture-4125625a1056"
}
},
{
- "at": "/value/content_md5_base64",
- "optional": false,
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/2/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -48649,182 +77290,127 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/2/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "text/plain; charset=utf-8"
+ "value": "SooI8J03tzeVZJA4QItfMw=="
}
},
{
- "at": "/value/content_language",
+ "at": "/value/entries/3/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "nl-NL"
+ "value": "object-tests/board/z.txt"
}
},
{
- "at": "/value/content_disposition",
+ "at": "/value/entries/3/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "attachment; filename=\"report.txt\""
+ "value": 2
}
},
{
- "at": "/value/cache_control",
+ "at": "/value/entries/3/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "max-age=3600"
+ "value": "fixture-0d608f7e2d51"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/get-with-staged-blocks",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "get with staged blocks",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/multipart/pending.bin",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/multipart/pending.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-ce92c4d48b08\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": "Zmlyc3RzZWNvbmQ="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/3/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/etag",
- "optional": false,
+ "at": "/value/entries/3/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "\"fixture-ce92c4d48b08\""
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/3/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 11
+ "value": "Je0by0I7C3IA9IX8X/ccjg=="
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": "application/octet-stream"
+ "is": "array_length",
+ "value": 4
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/value/prefixes",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "Zmlyc3RzZWNvbmQ="
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/head-committed-declaring-md5",
+ "id": "operations/azure-hns/list-prefix-without-slash",
"profile": "azure-hns",
"lane": "core",
- "purpose": "head committed declaring md5",
+ "purpose": "list prefix without slash",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/hashes/committed.bin",
- "op": "head"
+ "op": "list_page",
+ "prefix": "object-tests/boa"
},
"exchanges": [
{
@@ -48836,7 +77422,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "GET"
}
},
{
@@ -48844,7 +77430,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/hashes/committed.bin"
+ "value": "/fixture"
}
},
{
@@ -48854,6 +77440,30 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/boa"
+ }
}
],
"allow_headers": [],
@@ -48861,24 +77471,18 @@
"response": {
"status": 200,
"headers": {
- "content-length": "13",
- "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-9a581bc70e20\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "object-tests/boaobject-tests/boardMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-113173402488directory0BlockBlobHottrueunlockedavailabletrueobject-tests/board/a.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e8a4acb31ab1file8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nestedMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-bcf8c9e06f70directory0BlockBlobHottrueunlockedavailabletrueobject-tests/board/nested/c.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4125625a1056file1application/octet-streamSooI8J03tzeVZJA4QItfMw==BlockBlobHottrueunlockedavailabletrueobject-tests/board/z.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0d608f7e2d51file2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
}
}
]
@@ -48894,39 +77498,42 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-9a581bc70e20\""
+ "value": "object-tests/board"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 13
+ "value": 0
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-113173402488"
}
},
{
- "at": "/value/content_md5_base64",
- "optional": false,
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -48935,114 +77542,52 @@
""
]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head-committed",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "head committed",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/multipart/committed.bin",
- "op": "head"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/multipart/committed.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-length": "11",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-8ec031f3abfa\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/0/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/1/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-8ec031f3abfa\""
+ "value": "object-tests/board/a.txt"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 11
+ "value": 8
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/1/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-e8a4acb31ab1"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/1/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -49051,125 +77596,63 @@
""
]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head-metadata",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "head metadata",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/metadata/object.txt",
- "op": "head"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/metadata/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-length": "1",
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-4d04dba3441e\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-meta-name": "value",
- "x-ms-meta-second": "2",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/1/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-4d04dba3441e\""
+ "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/2/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "object-tests/board/nested"
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/2/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": 0
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/2/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "fixture-bcf8c9e06f70"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/2/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -49180,431 +77663,204 @@
}
},
{
- "at": "/value/metadata",
- "optional": false,
+ "at": "/value/entries/2/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": {
- "name": "value",
- "second": "2"
- }
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head-missing",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "head missing",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/read/absent.txt",
- "op": "head"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/absent.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "BlobNotFound"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/2/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": true
}
},
{
- "at": "/status",
+ "at": "/value/entries/3/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": "object-tests/board/nested/c.txt"
}
},
{
- "at": "/code",
+ "at": "/value/entries/3/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": 1
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head-previous-version",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "head previous version",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/versions-mtypy4jp/object.txt",
- "op": "head",
- "version": "none-1"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/versionid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "none-1"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 400,
- "headers": {
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/3/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "fixture-4125625a1056"
}
},
{
- "at": "/status",
- "optional": false,
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": 400
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head-snapshot",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "head snapshot",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/snapshots/object.txt",
- "op": "head",
- "snapshot": "2024-01-01T00:00:00.1577201Z"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/snapshot",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-01T00:00:00.1577201Z"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "BlobNotFound"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/3/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/3/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "error"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/status",
+ "at": "/value/entries/3/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": "SooI8J03tzeVZJA4QItfMw=="
}
},
{
- "at": "/code",
+ "at": "/value/entries/4/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "object-tests/board/z.txt"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head-written-with-crc64",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "head written with crc64",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/hashes/crc64.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/hashes/crc64.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-length": "13",
- "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-bf462a2f52f2\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/4/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": 2
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/4/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-bf462a2f52f2\""
+ "value": "fixture-0d608f7e2d51"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 13
+ "value": "Je0by0I7C3IA9IX8X/ccjg=="
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": "application/octet-stream"
+ "is": "array_length",
+ "value": 5
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/prefixes",
"optional": false,
"rule": {
- "is": "equal",
- "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/value/continuation_token",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/head-written-with-md5",
+ "id": "operations/azure-hns/list-separator-keys-delimited",
"profile": "azure-hns",
"lane": "core",
- "purpose": "head written with md5",
+ "purpose": "list separator keys delimited",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/hashes/md5.txt",
- "op": "head"
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/separators/"
},
"exchanges": [
{
@@ -49616,7 +77872,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "GET"
}
},
{
@@ -49624,7 +77880,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/hashes/md5.txt"
+ "value": "/fixture"
}
},
{
@@ -49634,6 +77890,38 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
}
],
"allow_headers": [],
@@ -49641,24 +77929,18 @@
"response": {
"status": 200,
"headers": {
- "content-length": "13",
- "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-15ae0acd3480\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "object-tests/separators//object-tests/separators/..leadingMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-15c8f76b7db4file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/a.b/Mon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMT0x8DF10FBAD54C650directory0BlockBlobHottrueunlockedavailabletrueobject-tests/separators/dotMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8a6559c18a1cfile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/double/Mon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMT0x8DF10FBAD3AE784directory0BlockBlobHottrueunlockedavailabletrueobject-tests/separators/space /Mon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMT0x8DF10FBAD472F18directory0BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
}
}
]
@@ -49674,39 +77956,42 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-15ae0acd3480\""
+ "value": "object-tests/separators/..leading"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 13
+ "value": 1
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-15c8f76b7db4"
}
},
{
- "at": "/value/content_md5_base64",
- "optional": false,
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -49715,123 +78000,63 @@
""
]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "head",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "head"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/0/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/1/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "object-tests/separators/dot"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 1
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/1/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-8a6559c18a1c"
}
},
{
- "at": "/value/content_md5_base64",
- "optional": false,
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/1/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -49840,21 +78065,88 @@
""
]
}
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes/0",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/a.b/"
+ }
+ },
+ {
+ "at": "/value/prefixes/1",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/double/"
+ }
+ },
+ {
+ "at": "/value/prefixes/2",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/space /"
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/head-key-question",
+ "id": "operations/azure-hns/list-separator-keys",
"profile": "azure-hns",
"lane": "core",
- "purpose": "head, with the key \"question?mark.txt\"",
+ "purpose": "list separator keys",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "key": "object-tests/keys/question?mark.txt",
- "op": "head"
+ "op": "list_page",
+ "prefix": "object-tests/separators/"
},
"exchanges": [
{
@@ -49866,7 +78158,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "GET"
}
},
{
@@ -49874,7 +78166,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/question?mark.txt"
+ "value": "/fixture"
}
},
{
@@ -49884,6 +78176,30 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/"
+ }
}
],
"allow_headers": [],
@@ -49891,24 +78207,18 @@
"response": {
"status": 200,
"headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-5295cdfd25ff\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "object-tests/separators/object-tests/separators/..leadingMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-15c8f76b7db4file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/a.bMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1647f69dced7directory0BlockBlobHottrueunlockedavailabletrueobject-tests/separators/a.b/cMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-75bdde0ebaf4file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/dotMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8a6559c18a1cfile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/doubleMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8e02901b8187directory0BlockBlobHottrueunlockedavailabletrueobject-tests/separators/double/slashMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-dffbfc983f10file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/space Mon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-978fd2f2d938directory0BlockBlobHottrueunlockedavailabletrueobject-tests/separators/space /xMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-ddc1aad6dee1file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
}
}
]
@@ -49924,39 +78234,42 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "object-tests/separators/..leading"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 1
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": "fixture-15c8f76b7db4"
}
},
{
- "at": "/value/content_md5_base64",
- "optional": false,
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -49965,123 +78278,52 @@
""
]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head-key-hash",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "head, with the key \"hash#tag.txt\"",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/keys/hash#tag.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/keys/hash#tag.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/1/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": "object-tests/separators/a.b"
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": 0
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/1/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": "fixture-1647f69dced7"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/1/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -50090,123 +78332,63 @@
""
]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head-key-percent",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "head, with the key \"percent%20.txt\"",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/keys/percent%20.txt",
- "op": "head"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/keys/percent%20.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/1/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": true
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/2/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": "object-tests/separators/a.b/c"
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/2/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": 1
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/2/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": "fixture-75bdde0ebaf4"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/2/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -50215,123 +78397,63 @@
""
]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head-key-plus",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "head, with the key \"plus+plus.txt\"",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/keys/plus+plus.txt",
- "op": "head"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/keys/plus+plus.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/2/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/3/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": "object-tests/separators/dot"
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/3/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": 1
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/3/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": "fixture-8a6559c18a1c"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/3/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -50340,123 +78462,63 @@
""
]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head-key-space",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "head, with the key \"space name.txt\"",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/keys/space name.txt",
- "op": "head"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/keys/space name.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/3/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/3/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/3/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/4/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": "object-tests/separators/double"
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/4/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": 0
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/4/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": "fixture-8e02901b8187"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/4/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -50465,123 +78527,63 @@
""
]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head-key-non-ascii",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "head, with the key \"café/雪.txt\"",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/keys/café/雪.txt",
- "op": "head"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/keys/café/雪.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/4/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/4/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/4/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": true
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/5/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": "object-tests/separators/double/slash"
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/5/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": 1
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/5/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": "fixture-dffbfc983f10"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/5/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -50590,123 +78592,63 @@
""
]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head-key-double-slash",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "head, with the key \"double//slash.txt\"",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/keys/double//slash.txt",
- "op": "head"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/keys/double//slash.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/5/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
- "optional": false,
+ "at": "/value/entries/5/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/5/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/6/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": "object-tests/separators/space "
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/6/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "application/octet-stream"
+ "value": 0
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/6/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": "fixture-978fd2f2d938"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/6/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -50715,206 +78657,63 @@
""
]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head-key-trailing-slash",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "head, with the key \"trailing-slash/\"",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/keys/trailing-slash/",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/keys/trailing-slash/"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "BlobNotFound"
- },
- "body": {
- "encoding": "empty"
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
},
{
- "at": "/status",
- "optional": false,
+ "at": "/value/entries/6/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": 404
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/code",
- "optional": false,
+ "at": "/value/entries/6/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "BlobNotFound"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head-content-properties",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Return the stored content properties from a HEAD",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "cache-control": "max-age=3600",
- "content-disposition": "attachment; filename=\"report.txt\"",
- "content-language": "nl-NL",
- "content-length": "30",
- "content-md5": "H1VC0PNTmj+yaCRN4U931g==",
- "content-type": "text/plain; charset=utf-8",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-5295cdfd25ff\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-server-encrypted": "true"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/6/directory",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": true
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/7/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5295cdfd25ff\""
+ "value": "object-tests/separators/space /x"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/7/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 1
}
},
{
- "at": "/value/content_md5_base64",
+ "at": "/value/entries/7/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "H1VC0PNTmj+yaCRN4U931g=="
+ "value": "fixture-ddc1aad6dee1"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/7/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -50925,148 +78724,76 @@
}
},
{
- "at": "/value/content_type",
- "optional": false,
+ "at": "/value/entries/7/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "text/plain; charset=utf-8"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/content_language",
- "optional": false,
+ "at": "/value/entries/7/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "nl-NL"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
- "at": "/value/content_disposition",
+ "at": "/value/entries/7/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "attachment; filename=\"report.txt\""
+ "value": "xMpCOKC5I4INzFCab3WEmw=="
}
},
{
- "at": "/value/cache_control",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "max-age=3600"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/head-if-unmodified-since-past",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/if-unmodified-since",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 412,
- "headers": {
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ConditionNotMet"
- },
- "body": {
- "encoding": "empty"
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": "error"
+ "is": "array_length",
+ "value": 8
}
},
{
- "at": "/status",
+ "at": "/value/prefixes",
"optional": false,
"rule": {
- "is": "equal",
- "value": 412
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/code",
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-after-delete-with-versions",
+ "id": "operations/azure-hns/list-snapshots-after-delete",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list after delete with versions",
+ "purpose": "list snapshots after delete",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
+ "include": [
+ "snapshots"
+ ],
"op": "list_page",
- "prefix": "object-tests/versions-mtypy4jp/deleted.txt"
+ "prefix": "object-tests/snapshots-all/"
},
"exchanges": [
{
@@ -51118,7 +78845,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/versions-mtypy4jp/deleted.txt"
+ "value": "object-tests/snapshots-all/"
+ }
+ },
+ {
+ "at": "/query/include",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "snapshots"
}
}
],
@@ -51136,7 +78871,7 @@
},
"body": {
"encoding": "utf8",
- "data": "object-tests/versions-mtypy4jp/deleted.txt"
+ "data": "object-tests/snapshots-all/"
},
"framing": "chunked"
}
@@ -51181,17 +78916,19 @@
"refusal": null
},
{
- "id": "operations/azure-hns/list-bad-marker",
+ "id": "operations/azure-hns/list-snapshots-after-snapshots-deleted",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list bad marker",
+ "purpose": "list snapshots after snapshots deleted",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "continuation_token": "fixture-marker+/1d52c72a655f=",
+ "include": [
+ "snapshots"
+ ],
"op": "list_page",
- "prefix": "object-tests/board/"
+ "prefix": "object-tests/snapshots-only/"
},
"exchanges": [
{
@@ -51243,33 +78980,35 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "object-tests/snapshots-only/"
}
},
{
- "at": "/query/marker",
+ "at": "/query/include",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-marker+/1d52c72a655f="
+ "value": "snapshots"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidQueryParameterValue"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "InvalidQueryParameterValueFixture error"
- }
+ "data": "object-tests/snapshots-only/object-tests/snapshots-only/object.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-5d8eb33996d7file4application/octet-streamTYtghPPRZ7dsrGaiKpG+Ag==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
}
}
]
@@ -51281,43 +79020,116 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "object-tests/snapshots-only/object.txt"
}
},
{
- "at": "/code",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidQueryParameterValue"
+ "value": 4
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-5d8eb33996d7"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "TYtghPPRZ7dsrGaiKpG+Ag=="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-bad-marker-code-in-body",
+ "id": "operations/azure-hns/list-snapshots-and-versions",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list bad marker, with the error code only in the XML body",
+ "purpose": "list snapshots and versions",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
- "origin": "constructed",
"call": {
- "continuation_token": "fixture-marker+/1d52c72a655f=",
+ "include": [
+ "snapshots",
+ "versions"
+ ],
"op": "list_page",
- "prefix": "object-tests/board/"
+ "prefix": "object-tests/snapshots/"
},
"exchanges": [
{
@@ -51369,32 +79181,35 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "object-tests/snapshots/"
}
},
{
- "at": "/query/marker",
+ "at": "/query/include",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-marker+/1d52c72a655f="
+ "value": "snapshots,versions"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "InvalidQueryParameterValueFixture error"
- }
+ "data": "object-tests/snapshots/object-tests/snapshots/object.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-2666f63dbf0bfile3application/octet-streamuKn3Fdu2T9XFbneDxoIKYQ==BlockBlobHottrueunlockedavailabletrue"
+ },
+ "framing": "chunked"
}
}
]
@@ -51406,154 +79221,115 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "object-tests/snapshots/object.txt"
}
},
{
- "at": "/code",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidQueryParameterValue"
+ "value": 3
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/list-container-missing",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "list container missing",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "op": "list_page",
- "prefix": ""
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 404,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-ms-error-code": "ContainerNotFound"
- },
- "body": {
- "encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "fixture-2666f63dbf0b"
}
},
{
- "at": "/status",
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": "uKn3Fdu2T9XFbneDxoIKYQ=="
}
},
{
- "at": "/code",
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "ContainerNotFound"
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-delimited",
+ "id": "operations/azure-hns/list-snapshots",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list delimited",
+ "purpose": "list snapshots",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "delimiter": "/",
+ "include": [
+ "snapshots"
+ ],
"op": "list_page",
- "prefix": "object-tests/board/"
+ "prefix": "object-tests/snapshots/"
},
"exchanges": [
{
@@ -51605,15 +79381,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "object-tests/snapshots/"
}
},
{
- "at": "/query/delimiter",
+ "at": "/query/include",
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "snapshots"
}
}
],
@@ -51631,7 +79407,7 @@
},
"body": {
"encoding": "utf8",
- "data": "object-tests/board//object-tests/board/a.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e8a4acb31ab1file8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nested/Mon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMT0x8DF10FBAC3E874Cdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/board/z.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0d608f7e2d51file2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
+ "data": "object-tests/snapshots/object-tests/snapshots/object.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-2666f63dbf0bfile3application/octet-streamuKn3Fdu2T9XFbneDxoIKYQ==BlockBlobHottrueunlockedavailabletrue"
},
"framing": "chunked"
}
@@ -51653,7 +79429,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/a.txt"
+ "value": "object-tests/snapshots/object.txt"
}
},
{
@@ -51661,7 +79437,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 8
+ "value": 3
}
},
{
@@ -51669,7 +79445,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-e8a4acb31ab1"
+ "value": "fixture-2666f63dbf0b"
}
},
{
@@ -51710,72 +79486,131 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
+ "value": "uKn3Fdu2T9XFbneDxoIKYQ=="
}
},
{
- "at": "/value/entries/1/key",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/board/z.txt"
+ "is": "array_length",
+ "value": 1
}
},
{
- "at": "/value/entries/1/size",
+ "at": "/value/prefixes",
"optional": false,
"rule": {
- "is": "equal",
- "value": 2
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/value/entries/1/etag",
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-0d608f7e2d51"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": ""
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/list-staged-only",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "list staged only",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": "object-tests/multipart/staged.bin"
+ },
+ "exchanges": [
{
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/restype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "list"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/multipart/staged.bin"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "object-tests/multipart/staged.bin"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/1/content_md5_base64",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "Je0by0I7C3IA9IX8X/ccjg=="
+ "value": "ok"
}
},
{
@@ -51783,15 +79618,7 @@
"optional": false,
"rule": {
"is": "array_length",
- "value": 2
- }
- },
- {
- "at": "/value/prefixes/0",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/nested/"
+ "value": 0
}
},
{
@@ -51799,7 +79626,7 @@
"optional": false,
"rule": {
"is": "array_length",
- "value": 1
+ "value": 0
}
},
{
@@ -51814,17 +79641,16 @@
"refusal": null
},
{
- "id": "operations/azure-hns/list-other-delimiter",
+ "id": "operations/azure-hns/list-unauthenticated",
"profile": "azure-hns",
"lane": "core",
- "purpose": "Report the 400 DelimiterIsInvalidForHNS that an HNS account answers to any delimiter but /",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "delimiter": "-",
"op": "list_page",
- "prefix": "object-tests/dashes/"
+ "prefix": "object-tests/"
},
"exchanges": [
{
@@ -51876,32 +79702,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/dashes/"
- }
- },
- {
- "at": "/query/delimiter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "-"
+ "value": "object-tests/"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 401,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "DelimiterIsInvalidForHNS"
+ "x-ms-error-code": "InvalidAuthenticationInfo"
},
"body": {
"encoding": "utf8",
- "data": "DelimiterIsInvalidForHNSThe only delimiter supported for hierarchical namespace accounts is '/'."
+ "data": "InvalidAuthenticationInfoFixture error"
}
}
}
@@ -51922,7 +79740,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": 401
}
},
{
@@ -51930,64 +79748,26 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DelimiterIsInvalidForHNS"
+ "value": "InvalidAuthenticationInfo"
}
}
],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "delimiter"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DelimiterIsInvalidForHNS"
- }
- }
- ]
+ "refusal": null
},
{
- "id": "operations/azure-hns/list-empty",
+ "id": "operations/azure-hns/list-versions-of-deleted-object",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list empty",
+ "purpose": "list versions of deleted object",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
+ "include": [
+ "versions"
+ ],
"op": "list_page",
- "prefix": "object-tests/nothing/"
+ "prefix": "object-tests/versions-mtypy4jp/deleted.txt"
},
"exchanges": [
{
@@ -52039,7 +79819,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/nothing/"
+ "value": "object-tests/versions-mtypy4jp/deleted.txt"
+ }
+ },
+ {
+ "at": "/query/include",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "versions"
}
}
],
@@ -52057,7 +79845,7 @@
},
"body": {
"encoding": "utf8",
- "data": "object-tests/nothing/"
+ "data": "object-tests/versions-mtypy4jp/deleted.txt"
},
"framing": "chunked"
}
@@ -52102,16 +79890,19 @@
"refusal": null
},
{
- "id": "operations/azure-hns/list-all-empty",
+ "id": "operations/azure-hns/list-versions",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list empty",
+ "purpose": "list versions",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list",
- "prefix": ""
+ "include": [
+ "versions"
+ ],
+ "op": "list_page",
+ "prefix": "object-tests/versions-mtypy4jp/"
},
"exchanges": [
{
@@ -52160,10 +79951,18 @@
},
{
"at": "/query/prefix",
- "optional": true,
+ "optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/versions-mtypy4jp/"
+ }
+ },
+ {
+ "at": "/query/include",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "versions"
}
}
],
@@ -52176,20 +79975,12 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PC9CbG9icz48TmV4dE1hcmtlcj48L05leHRNYXJrZXI+PC9FbnVtZXJhdGlvblJlc3VsdHM+"
+ "encoding": "utf8",
+ "data": "object-tests/versions-mtypy4jp/object-tests/versions-mtypy4jp/object.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-bd163fcc78d6file2application/octet-streamGyZ2GcSBLMRu4oF0eITKUA==BlockBlobHottrueunlockedavailabletrue"
},
"framing": "chunked"
}
@@ -52199,35 +79990,116 @@
],
"expect": [
{
- "at": "/outcome",
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/versions-mtypy4jp/object.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-bd163fcc78d6"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "GyZ2GcSBLMRu4oF0eITKUA=="
}
},
{
- "at": "/value/keys",
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": []
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-encoded-names",
+ "id": "operations/azure-hns/list-written-with-hashes",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list encoded names",
+ "purpose": "list written with hashes",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
"op": "list_page",
- "prefix": "object-tests/names/"
+ "prefix": "object-tests/hashes/"
},
"exchanges": [
{
@@ -52279,7 +80151,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/names/"
+ "value": "object-tests/hashes/"
}
}
],
@@ -52297,7 +80169,7 @@
},
"body": {
"encoding": "utf8",
- "data": "object-tests/names/object-tests%2Fnames%2F100%25-%EF%BF%BE-name.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-78b47742a630file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/a&b.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-f951d7d7ec22file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/backMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e64e63e9a87bdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/names/back/slash.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e9c0e2dbcfe1file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/café.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7d8cf0126958file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/hash#tag.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-abf3c382e0bafile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/percent%20.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7ded7554e543file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/plus+plus.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-235b28f1c86ffile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/names/q?mark.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-cb57b84f4392file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ "data": "object-tests/hashes/object-tests/hashes/committed.binMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1e5253c0f65afile13application/octet-streamN6YZkbg+Lyfxtskwn8iRCg==BlockBlobHottrueunlockedavailabletrueobject-tests/hashes/crc64.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1a8d1824b282file13application/octet-stream9XBvAwWoR9o=N6YZkbg+Lyfxtskwn8iRCg==BlockBlobHottrueunlockedavailabletrueobject-tests/hashes/md5.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-3b064c67c0acfile13application/octet-streamN6YZkbg+Lyfxtskwn8iRCg==BlockBlobHottrueunlockedavailabletrue"
},
"framing": "chunked"
}
@@ -52319,7 +80191,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/names/100%--name.txt"
+ "value": "object-tests/hashes/committed.bin"
}
},
{
@@ -52327,7 +80199,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 13
}
},
{
@@ -52335,7 +80207,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-78b47742a630"
+ "value": "fixture-1e5253c0f65a"
}
},
{
@@ -52376,7 +80248,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "N6YZkbg+Lyfxtskwn8iRCg=="
}
},
{
@@ -52384,7 +80256,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/names/a&b.txt"
+ "value": "object-tests/hashes/crc64.txt"
}
},
{
@@ -52392,7 +80264,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 13
}
},
{
@@ -52400,7 +80272,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-f951d7d7ec22"
+ "value": "fixture-1a8d1824b282"
}
},
{
@@ -52441,7 +80313,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ }
+ },
+ {
+ "at": "/value/entries/1/content_crc64_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "9XBvAwWoR9o="
}
},
{
@@ -52449,7 +80329,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/names/back"
+ "value": "object-tests/hashes/md5.txt"
}
},
{
@@ -52457,7 +80337,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": 13
}
},
{
@@ -52465,7 +80345,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-e64e63e9a87b"
+ "value": "fixture-3b064c67c0ac"
}
},
{
@@ -52502,180 +80382,357 @@
}
},
{
- "at": "/value/entries/2/directory",
+ "at": "/value/entries/2/content_md5_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "N6YZkbg+Lyfxtskwn8iRCg=="
}
},
{
- "at": "/value/entries/3/key",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/names/back/slash.txt"
+ "is": "array_length",
+ "value": 3
}
},
{
- "at": "/value/entries/3/size",
+ "at": "/value/prefixes",
"optional": false,
"rule": {
- "is": "equal",
- "value": 1
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/value/entries/3/etag",
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-e9c0e2dbcfe1"
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": ""
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-container-missing",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put container missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
+ "key": "object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/3/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bm90aGluZyBpcyBzdG9yZWQ="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ContainerNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ContainerNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/3/content_md5_base64",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "error"
}
},
{
- "at": "/value/entries/4/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/names/café.txt"
+ "value": 404
}
},
{
- "at": "/value/entries/4/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ContainerNotFound"
}
},
{
- "at": "/value/entries/4/etag",
+ "at": "/kind",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-7d8cf0126958"
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "container_not_found"
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-crc64-mismatch",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put crc64 mismatch",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "ZGVjbGFyZWQtYm9keQ==",
+ "checksum": {
+ "algorithm": "azure_crc64",
+ "value_base64": "khqMBK+EUSA="
},
+ "key": "object-tests/hashes/crc64-mismatch.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/4/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/hashes/crc64-mismatch.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ZGVjbGFyZWQtYm9keQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-content-crc64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "khqMBK+EUSA="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "Crc64Mismatch"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "Crc64MismatchFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/4/content_md5_base64",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "error"
}
},
{
- "at": "/value/entries/5/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/names/hash#tag.txt"
+ "value": 400
}
},
{
- "at": "/value/entries/5/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "Crc64Mismatch"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-created-empty",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put created empty",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "",
+ "key": "object-tests/write/empty.bin",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/5/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/empty.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "1B2M2Y8AsgTpgAmY7PhCfg==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-9373f0410116\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-abf3c382e0ba"
+ "value": "ok"
}
},
{
- "at": "/value/entries/5/snapshot",
- "optional": true,
+ "at": "/value/etag",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "\"fixture-9373f0410116\""
}
},
{
- "at": "/value/entries/5/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -52684,63 +80741,105 @@
""
]
}
- },
- {
- "at": "/value/entries/5/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/5/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-created",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put created",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/6/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/percent%20.txt"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-bf139483d631\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/6/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/entries/6/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-7ded7554e543"
- }
- },
- {
- "at": "/value/entries/6/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-bf139483d631\""
}
},
{
- "at": "/value/entries/6/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -52749,63 +80848,105 @@
""
]
}
- },
- {
- "at": "/value/entries/6/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/6/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-created-key-question",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put created, with the key \"question?mark.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/7/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/plus+plus.txt"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/question?mark.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-bf139483d631\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/7/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/entries/7/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-235b28f1c86f"
- }
- },
- {
- "at": "/value/entries/7/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-bf139483d631\""
}
},
{
- "at": "/value/entries/7/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -52814,63 +80955,212 @@
""
]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-created-key-hash",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put created, with the key \"hash#tag.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/7/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/hash#tag.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-bf139483d631\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/7/content_md5_base64",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "ok"
}
},
{
- "at": "/value/entries/8/key",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/names/q?mark.txt"
+ "value": "\"fixture-bf139483d631\""
}
},
{
- "at": "/value/entries/8/size",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": 1
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-created-key-percent",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put created, with the key \"percent%20.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/8/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/percent%20.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-bf139483d631\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-cb57b84f4392"
+ "value": "ok"
}
},
{
- "at": "/value/entries/8/snapshot",
- "optional": true,
+ "at": "/value/etag",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "\"fixture-bf139483d631\""
}
},
{
- "at": "/value/entries/8/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -52879,64 +81169,129 @@
""
]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-created-key-plus",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put created, with the key \"plus+plus.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/8/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/plus+plus.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-bf139483d631\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/8/content_md5_base64",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 9
+ "value": "ok"
}
},
{
- "at": "/value/prefixes",
+ "at": "/value/etag",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "\"fixture-bf139483d631\""
}
},
- {
- "at": "/value/continuation_token",
- "optional": false,
+ {
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-xml-escaped",
+ "id": "operations/azure-hns/put-created-key-space",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list xml escaped",
+ "purpose": "put created, with the key \"space name.txt\"",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list",
- "prefix": ""
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/space name.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -52948,7 +81303,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -52956,7 +81311,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/keys/space name.txt"
}
},
{
@@ -52964,59 +81319,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/query/comp",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
+ "etag": "\"fixture-bf139483d631\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ "x-ms-request-server-encrypted": "true"
},
"body": {
"encoding": "base64",
- "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+YSZhbXA7YjwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PEJsb2I+PE5hbWU+YyZsdDtkPC9OYW1lPjxQcm9wZXJ0aWVzPjxMYXN0LU1vZGlmaWVkPk1vbiwgMDEgSmFuIDIwMjQgMDA6MDA6MDAgR01UPC9MYXN0LU1vZGlmaWVkPjxFdGFnPiJmaXh0dXJlIjwvRXRhZz48Q29udGVudC1MZW5ndGg+NTwvQ29udGVudC1MZW5ndGg+PEJsb2JUeXBlPkJsb2NrQmxvYjwvQmxvYlR5cGU+PC9Qcm9wZXJ0aWVzPjwvQmxvYj48L0Jsb2JzPjxOZXh0TWFya2VyPjwvTmV4dE1hcmtlcj48L0VudW1lcmF0aW9uUmVzdWx0cz4="
- },
- "framing": "chunked"
+ "data": ""
+ }
}
}
]
@@ -53032,13 +81366,21 @@
}
},
{
- "at": "/value/keys",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": [
- "a&b",
- "cobject-tests/board/2object-tests/board/a.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e8a4acb31ab1file8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nestedMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-bcf8c9e06f70directory0BlockBlobHottrueunlockedavailabletruefixture-marker+/17aa95c4a402="
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -53152,107 +81473,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/a.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 8
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-e8a4acb31ab1"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/nested"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/1/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-bcf8c9e06f70"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-bf139483d631\""
}
},
{
- "at": "/value/entries/1/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -53261,65 +81490,22 @@
""
]
}
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-marker+/17aa95c4a402="
- }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-page-size-one",
+ "id": "operations/azure-hns/put-created-key-double-slash",
"profile": "azure-hns",
"lane": "core",
- "purpose": "A page of zero entries is out of range, but a page of one is not. Send a page size of 1 and report the one entry and the continuation token.",
+ "purpose": "put created, with the key \"double//slash.txt\"",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list_page",
- "page_size": 1,
- "prefix": "object-tests/board/"
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -53331,7 +81517,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -53339,7 +81525,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/keys/double//slash.txt"
}
},
{
@@ -53347,59 +81533,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/query/maxresults",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "BlockBlob"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 201,
"headers": {
- "content-type": "application/xml",
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
"date": {
"from": "now"
},
+ "etag": "\"fixture-bf139483d631\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
},
"body": {
- "encoding": "utf8",
- "data": "object-tests/board/1object-tests/board/a.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e8a4acb31ab1file8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletruefixture-marker+/17aa95c4a402="
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -53415,42 +81580,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/a.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 8
- }
- },
- {
- "at": "/value/entries/0/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-e8a4acb31ab1"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-bf139483d631\""
}
},
{
- "at": "/value/entries/0/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -53459,67 +81597,22 @@
""
]
}
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-marker+/17aa95c4a402="
- }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-operation-timed-out",
+ "id": "operations/azure-hns/put-created-key-trailing-slash",
"profile": "azure-hns",
"lane": "core",
- "purpose": "Report a 500 OperationTimedOut answer as an error, after at most 5 retries",
+ "purpose": "put created, with the key \"trailing-slash/\"",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
- "origin": "transient",
"call": {
- "op": "list_page",
- "page_size": 2,
- "prefix": "object-tests/board/"
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "put"
},
"exchanges": [
{
@@ -53531,7 +81624,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -53539,7 +81632,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/keys/trailing-slash/"
}
},
{
@@ -53547,61 +81640,181 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/query/restype",
+ "at": "/headers/x-ms-blob-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "BlockBlob"
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidUri"
},
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidUriFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidUri"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/copy-missing-source",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Refuse a copy whose source does not exist",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/absent.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "PUT"
}
},
{
- "at": "/query/prefix",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
- "at": "/query/maxresults",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/absent\\.txt"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "OperationTimedOut"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
"encoding": "utf8",
- "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ "data": "BlobNotFoundFixture error"
}
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
},
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobNotFound"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/copy",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Copy an object to another key in the same container",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -53611,7 +81824,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -53619,7 +81832,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -53631,58 +81844,72 @@
}
},
{
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/maxresults",
+ "at": "/headers/x-ms-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "OperationTimedOut"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "success"
},
"body": {
- "encoding": "utf8",
- "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ "encoding": "empty"
}
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/copy_status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "success"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/copy-replace-metadata",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Copy a blob with new metadata, which replaces all of the source's. A copy that names no metadata keeps the source's",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "metadata": {
+ "colour": "blue"
},
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -53692,7 +81919,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -53700,7 +81927,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -53712,58 +81939,78 @@
}
},
{
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
+ "at": "/headers/x-ms-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
}
},
{
- "at": "/query/maxresults",
+ "at": "/headers/x-ms-meta-colour",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "blue"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "OperationTimedOut"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "success"
},
"body": {
- "encoding": "utf8",
- "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ "encoding": "empty"
}
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
},
+ {
+ "at": "/value/copy_status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "success"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/copy-source-if-match",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Copy a blob only if the source still has this ETag, named in x-ms-source-if-match",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_match": "\"fixture-etag\"",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -53773,7 +82020,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -53781,7 +82028,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -53793,58 +82040,78 @@
}
},
{
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
+ "at": "/headers/x-ms-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
}
},
{
- "at": "/query/maxresults",
+ "at": "/headers/x-ms-source-if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "\"fixture-etag\""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "OperationTimedOut"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "success"
},
"body": {
- "encoding": "utf8",
- "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ "encoding": "empty"
}
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
},
+ {
+ "at": "/value/copy_status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "success"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/copy-source-if-match-failed",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Report a copy whose source does not have the ETag in x-ms-source-if-match as a failed condition, 412 SourceConditionNotMet",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_match": "\"fixture-0123456789ab\"",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -53854,7 +82121,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -53862,7 +82129,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -53874,58 +82141,85 @@
}
},
{
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
+ "at": "/headers/x-ms-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
}
},
{
- "at": "/query/maxresults",
+ "at": "/headers/x-ms-source-if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "\"fixture-0123456789ab\""
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "OperationTimedOut"
+ "x-ms-error-code": "SourceConditionNotMet"
},
"body": {
"encoding": "utf8",
- "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ "data": "SourceConditionNotMetFixture error"
}
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
},
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "SourceConditionNotMet"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/copy-source-if-unmodified-since-failed",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Report a copy whose source changed after the time in x-ms-source-if-unmodified-since as a failed condition, 412 SourceConditionNotMet",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_unmodified_since": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -53935,7 +82229,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -53943,7 +82237,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -53955,57 +82249,40 @@
}
},
{
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
+ "at": "/headers/x-ms-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
}
},
{
- "at": "/query/maxresults",
+ "at": "/headers/x-ms-source-if-unmodified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "Mon, 01 Jan 2024 00:00:00 GMT"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "OperationTimedOut"
+ "x-ms-error-code": "SourceConditionNotMet"
},
"body": {
"encoding": "utf8",
- "data": "OperationTimedOutThe operation could not be completed within the permitted time."
+ "data": "SourceConditionNotMetFixture error"
}
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -54022,7 +82299,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 500
+ "value": 412
}
},
{
@@ -54030,24 +82307,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "OperationTimedOut"
+ "value": "SourceConditionNotMet"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-key-equal-to-prefix-delimited",
+ "id": "operations/azure-hns/copy-if-none-match-exists",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list key equal to prefix delimited",
+ "purpose": "Report a copy with If-None-Match: * onto a blob that exists as a failed condition on the destination",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
],
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/exact"
+ "if_none_match": "*",
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -54059,7 +82337,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -54067,7 +82345,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -54079,55 +82357,138 @@
}
},
{
- "at": "/query/restype",
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "*"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "BlobAlreadyExists"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobAlreadyExistsFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 409
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlobAlreadyExists"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/copy-across-containers",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Copy a blob from another container of the same account, which x-ms-copy-source names in its URL",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_container": "source",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "PUT"
}
},
{
- "at": "/query/comp",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
- "at": "/query/prefix",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/exact"
+ "value": ""
}
},
{
- "at": "/query/delimiter",
+ "at": "/headers/x-ms-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "/"
+ "is": "matches",
+ "pattern": "https?://[^/]+/source/object-tests/copy/source\\.txt"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "success"
},
"body": {
- "encoding": "utf8",
- "data": "object-tests/exact/object-tests/exactMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-fef6be204aeafile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
]
@@ -54143,108 +82504,29 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/exact"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-fef6be204aea"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
+ "at": "/value/copy_status",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "success"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-key-equal-to-prefix",
+ "id": "operations/azure-hns/copy-tier",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list key equal to prefix",
+ "purpose": "Copy a blob into another access tier, named in x-ms-access-tier",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/exact"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt",
+ "tier": "Cool"
},
"exchanges": [
{
@@ -54256,7 +82538,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -54264,7 +82546,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -54276,47 +82558,38 @@
}
},
{
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
- {
- "at": "/query/comp",
+ "at": "/headers/x-ms-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "list"
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-ms-access-tier",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/exact"
+ "value": "Cool"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "success"
},
"body": {
- "encoding": "utf8",
- "data": "object-tests/exactobject-tests/exactMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-fef6be204aeafile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
]
@@ -54332,108 +82605,28 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/exact"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-fef6be204aea"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
+ "at": "/value/copy_status",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "success"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-many-segments",
+ "id": "operations/azure-hns/copy-source-key-encoded",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list many segments",
+ "purpose": "Copy from a key with a space, +, %, é, ? and #. The x-ms-copy-source URL percent-encodes every byte of the key outside letters, digits, -._~ and /",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/s/"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/a b+c%é?#.txt"
},
"exchanges": [
{
@@ -54445,7 +82638,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -54453,7 +82646,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -54465,1983 +82658,3426 @@
}
},
{
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
+ "at": "/headers/x-ms-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/s/"
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/a%20b%2[Bb]c%25%[Cc]3%[Aa]9%3[Ff]%23\\.txt"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 202,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "success"
},
"body": {
- "encoding": "utf8",
- "data": "object-tests/s/object-tests/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-a1b39dcffaf3directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8159be643ac0directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-80c8a1f73c94directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7b0fdb4b59dddirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4f1babf5f716directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-5f419d87193edirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-c32f2de5b421directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-51d97c94b354directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-581e4ea356a1directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-5eb2172133aedirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-d32c38634d37directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-3bdc7f728acbdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8a1c17d8d892directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-53277b21dbd0directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-18b5ffb0f548directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-2250c2114935directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8ce858fcdc2bdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-d8660a5bc252directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4ec0409f150bdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-aede66c75766directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-3316748edb9bdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-f7f3bc0b3f92directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-6a1f4f7934bfdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-87c3fdda2bdadirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4d2fcc081fd8directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8956db6ae017directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-7f1f55a3463bdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-44dd81206643directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-952096734190directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-db4655ce498cdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b2a6d305ae63directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-23d914b576fbdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0fe87110b578directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-55cf88c7a2e2directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-6815a7113351directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-70df51065efedirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0e76caa6ea5fdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-97f6d7ad109ddirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b7df38492c3edirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-ac2f2336ab74directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-c2a19efa033cdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b9e90b553fffdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0d7c0a17f740directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e1d35759d4acdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1389b2ea70e1directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-11c5ee820f55directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-ba489a3d8cb9directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-548645ff94c6directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b21f6737ba6cdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-23eb881b6618directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-02c3be7f3363directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-86bca962bd30directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1696791242e8directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-b40699a1e1dbdirectory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-d3fa18807e94directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-d55c43fd1f89directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-989ce64e20d6directory0BlockBlobHottrueunlockedavailabletrueobject-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/sMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e6b534521353file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
]
}
],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-a1b39dcffaf3"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-8159be643ac0"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-80c8a1f73c94"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-7b0fdb4b59dd"
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/3/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/4/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s"
- }
- },
- {
- "at": "/value/entries/4/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/4/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-4f1babf5f716"
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/4/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/5/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s"
- }
- },
- {
- "at": "/value/entries/5/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/5/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-5f419d87193e"
- }
- },
- {
- "at": "/value/entries/5/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/5/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/6/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s"
- }
- },
- {
- "at": "/value/entries/6/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/6/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-c32f2de5b421"
- }
- },
- {
- "at": "/value/entries/6/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/6/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/7/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s"
- }
- },
- {
- "at": "/value/entries/7/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/7/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-51d97c94b354"
- }
- },
- {
- "at": "/value/entries/7/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/7/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/7/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/7/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/8/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s"
- }
- },
- {
- "at": "/value/entries/8/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/8/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-581e4ea356a1"
- }
- },
- {
- "at": "/value/entries/8/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/8/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/8/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/8/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/9/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s"
- }
- },
- {
- "at": "/value/entries/9/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/9/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-5eb2172133ae"
- }
- },
- {
- "at": "/value/entries/9/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/9/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/9/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/9/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/10/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s"
- }
- },
- {
- "at": "/value/entries/10/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/10/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-d32c38634d37"
- }
- },
- {
- "at": "/value/entries/10/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/10/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/10/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/10/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
+ "expect": [
{
- "at": "/value/entries/11/key",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "ok"
}
},
{
- "at": "/value/entries/11/size",
+ "at": "/value/copy_status",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "success"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/copy-sync",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Copy a blob with Copy Blob From URL, x-ms-requires-sync: true, which answers once the copy is done. The source must be readable by URL: by a SAS, or by a bearer token in x-ms-copy-source-authorization",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob-from-url"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt",
+ "sync": true
+ },
+ "exchanges": [
{
- "at": "/value/entries/11/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-ms-requires-sync",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "true"
+ }
+ }
+ ],
+ "allow_headers": [
+ "x-ms-copy-source-authorization"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "success"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-3bdc7f728acb"
- }
- },
- {
- "at": "/value/entries/11/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/11/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/11/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "ok"
}
},
{
- "at": "/value/entries/11/directory",
+ "at": "/value/copy_status",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "success"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/copy-pending",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Report a copy that Azure answers as pending with its copy ID, so that a caller can follow it with a HEAD or abort it",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ ],
+ "origin": "transient",
+ "derived_from": "operations/azure-hns/copy",
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
{
- "at": "/value/entries/12/key",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-copy-id": "fixture-copy-id",
+ "x-ms-copy-status": "pending"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "ok"
}
},
{
- "at": "/value/entries/12/size",
+ "at": "/value/copy_status",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "pending"
}
},
{
- "at": "/value/entries/12/etag",
+ "at": "/value/copy_id",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-8a1c17d8d892"
- }
- },
- {
- "at": "/value/entries/12/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/12/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "fixture-copy-id"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-from-url",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Write a block blob from the bytes at a URL with Put Blob From URL: a PUT with x-ms-blob-type: BlockBlob, x-ms-copy-source and no body, which answers once it is written",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob-from-url"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "azure.put_from_url",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
{
- "at": "/value/entries/12/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "x-ms-copy-source-authorization",
+ "x-ms-copy-source-blob-properties"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/12/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "ok"
}
},
{
- "at": "/value/entries/13/key",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "\"fixture-etag\""
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/abort-copy",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Abort a pending copy by its copy ID, with x-ms-copy-action: abort",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/abort-copy-blob"
+ ],
+ "origin": "transient",
+ "derived_from": "operations/azure-hns/abort-copy-finished",
+ "call": {
+ "copy_id": "fixture-copy-id",
+ "key": "object-tests/copy/target.txt",
+ "op": "azure.abort_copy"
+ },
+ "exchanges": [
{
- "at": "/value/entries/13/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "copy"
+ }
+ },
+ {
+ "at": "/query/copyid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-copy-id"
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-action",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "abort"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 204,
+ "headers": {
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/13/etag",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-53277b21dbd0"
- }
- },
- {
- "at": "/value/entries/13/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/13/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "ok"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/abort-copy-finished",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Report an abort of a copy that has finished as an error, 409 NoPendingCopyOperation",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/abort-copy-blob"
+ ],
+ "call": {
+ "copy_id": "fixture-copy-id",
+ "key": "object-tests/copy/target.txt",
+ "op": "azure.abort_copy"
+ },
+ "exchanges": [
{
- "at": "/value/entries/13/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "copy"
+ }
+ },
+ {
+ "at": "/query/copyid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-copy-id"
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-action",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "abort"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "NoPendingCopyOperation"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "NoPendingCopyOperationFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/13/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/14/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": 409
}
},
{
- "at": "/value/entries/14/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "NoPendingCopyOperation"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/get-page-ranges",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "List the written ranges of a page blob, which an HNS account does not support",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-page-ranges"
+ ],
+ "call": {
+ "key": "object-tests/pages/object.vhd",
+ "op": "azure.get_page_ranges"
+ },
+ "exchanges": [
{
- "at": "/value/entries/14/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/pages/object.vhd"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "pagelist"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-18b5ffb0f548"
- }
- },
- {
- "at": "/value/entries/14/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/14/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/14/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "error"
}
},
{
- "at": "/value/entries/14/directory",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": 409
}
},
{
- "at": "/value/entries/15/key",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/upload-pages-unaligned",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Refuse a page write that does not start on a 512-byte boundary, which an HNS account does not support",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-page"
+ ],
+ "call": {
+ "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=",
+ "key": "object-tests/pages/object.vhd",
+ "offset": 1,
+ "op": "azure.upload_pages"
+ },
+ "exchanges": [
{
- "at": "/value/entries/15/size",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/pages/object.vhd"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA="
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "page"
+ }
+ },
+ {
+ "at": "/headers/x-ms-page-write",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "update"
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=1-512"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidHeaderValue"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidHeaderValueFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "error"
}
},
{
- "at": "/value/entries/15/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-2250c2114935"
- }
- },
- {
- "at": "/value/entries/15/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/15/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/15/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": 400
}
},
{
- "at": "/value/entries/15/directory",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "InvalidHeaderValue"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/upload-pages",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Write the first page of a page blob, which an HNS account does not support",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-page"
+ ],
+ "call": {
+ "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=",
+ "key": "object-tests/pages/object.vhd",
+ "offset": 0,
+ "op": "azure.upload_pages"
+ },
+ "exchanges": [
{
- "at": "/value/entries/16/key",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/pages/object.vhd"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA="
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "page"
+ }
+ },
+ {
+ "at": "/headers/x-ms-page-write",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "update"
+ }
+ },
+ {
+ "at": "/headers/x-ms-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=0-511"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "error"
}
},
{
- "at": "/value/entries/16/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": 409
}
},
{
- "at": "/value/entries/16/etag",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-8ce858fcdc2b"
- }
- },
- {
- "at": "/value/entries/16/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/16/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/create-page",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Create a page blob of 1,024 bytes, which an HNS account does not support",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
+ ],
+ "call": {
+ "key": "object-tests/pages/object.vhd",
+ "op": "azure.create_page",
+ "size": 1024
+ },
+ "exchanges": [
{
- "at": "/value/entries/16/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/pages/object.vhd"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PageBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-length",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1024"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/16/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/17/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": 409
}
},
{
- "at": "/value/entries/17/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/append-block-to-block-blob",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Refuse an append to a block blob",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block"
+ ],
+ "call": {
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/append/object.log",
+ "op": "azure.append_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/17/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/append/object.log"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "appendblock"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidBlobType"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidBlobTypeFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-d8660a5bc252"
+ "value": "error"
}
},
{
- "at": "/value/entries/17/snapshot",
- "optional": true,
+ "at": "/status",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 409
}
},
{
- "at": "/value/entries/17/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "InvalidBlobType"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/append-block-at-wrong-position",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Refuse an append whose position condition does not match the blob length",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block"
+ ],
+ "call": {
+ "append_position": 0,
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/append/object.log",
+ "op": "azure.append_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/17/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/append/object.log"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "appendblock"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-condition-appendpos",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "0"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "AppendPositionConditionNotMet"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "AppendPositionConditionNotMetFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/17/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/18/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": 412
}
},
{
- "at": "/value/entries/18/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "AppendPositionConditionNotMet"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/append-block",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Append a block to an append blob and report its offset",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block"
+ ],
+ "call": {
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/append/object.log",
+ "op": "azure.append_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/18/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/append/object.log"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "appendblock"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-blob-append-offset": "5",
+ "x-ms-blob-committed-block-count": "2",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-4ec0409f150b"
+ "value": "ok"
}
},
{
- "at": "/value/entries/18/snapshot",
- "optional": true,
+ "at": "/value/append_offset",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 5
}
},
{
- "at": "/value/entries/18/version",
- "optional": true,
+ "at": "/value/committed_block_count",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 2
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/create-append",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Create an empty append blob",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
+ ],
+ "call": {
+ "key": "object-tests/append/object.log",
+ "op": "azure.create_append"
+ },
+ "exchanges": [
{
- "at": "/value/entries/18/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/append/object.log"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "AppendBlob"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/18/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "ok"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-leased-if-match-without-lease-id",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Refuse a write to a leased object whose If-Match holds but that names no lease ID",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ ],
+ "call": {
+ "body_base64": "c2Vjb25k",
+ "if_match": "\"fixture-etag\"",
+ "key": "object-tests/leases/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/19/key",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/leases/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "LeaseIdMissing"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "LeaseIdMissingFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "error"
}
},
{
- "at": "/value/entries/19/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": 412
}
},
{
- "at": "/value/entries/19/etag",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-aede66c75766"
- }
- },
- {
- "at": "/value/entries/19/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/19/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "LeaseIdMissing"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-leased-with-lease-id",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Write to a leased object with its lease ID",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ ],
+ "call": {
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/leases/object.txt",
+ "lease_id": "11111111-2222-3333-4444-555555555555",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/19/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/leases/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-id",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "11111111-2222-3333-4444-555555555555"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/19/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "ok"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-leased-without-lease-id",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Refuse a write to a leased object that names no lease ID",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ ],
+ "call": {
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/leases/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/20/key",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/leases/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "LeaseIdMissing"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "LeaseIdMissingFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "error"
}
},
{
- "at": "/value/entries/20/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": 412
}
},
{
- "at": "/value/entries/20/etag",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-3316748edb9b"
+ "value": "LeaseIdMissing"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/lease-break",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Break a lease at once",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ ],
+ "call": {
+ "action": "break",
+ "break_period": 0,
+ "key": "object-tests/leases/object.txt",
+ "op": "azure.lease"
+ },
+ "exchanges": [
{
- "at": "/value/entries/20/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/leases/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "lease"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-action",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "break"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-break-period",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "0"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 202,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-time": "0"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/20/version",
- "optional": true,
+ "at": "/outcome",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "ok"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/lease-release",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Release a lease",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ ],
+ "call": {
+ "action": "release",
+ "key": "object-tests/leases/object.txt",
+ "lease_id": "11111111-2222-3333-4444-555555555555",
+ "op": "azure.lease"
+ },
+ "exchanges": [
{
- "at": "/value/entries/20/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/leases/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "lease"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-action",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "release"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-id",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "11111111-2222-3333-4444-555555555555"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/20/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "ok"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/lease-acquire-leased",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Refuse a second lease while another lease holds the object",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ ],
+ "call": {
+ "action": "acquire",
+ "duration": 15,
+ "key": "object-tests/leases/object.txt",
+ "op": "azure.lease",
+ "proposed_lease_id": "66666666-7777-8888-9999-000000000000"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/leases/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "lease"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-action",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "acquire"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-duration",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "15"
+ }
+ },
+ {
+ "at": "/headers/x-ms-proposed-lease-id",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "66666666-7777-8888-9999-000000000000"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "LeaseAlreadyPresent"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "LeaseAlreadyPresentFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/21/key",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "error"
}
},
{
- "at": "/value/entries/21/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": 409
}
},
{
- "at": "/value/entries/21/etag",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-f7f3bc0b3f92"
- }
- },
- {
- "at": "/value/entries/21/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/21/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "LeaseAlreadyPresent"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/lease-acquire",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Acquire a lease on an object with a proposed lease ID",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ ],
+ "call": {
+ "action": "acquire",
+ "duration": 15,
+ "key": "object-tests/leases/object.txt",
+ "op": "azure.lease",
+ "proposed_lease_id": "11111111-2222-3333-4444-555555555555"
+ },
+ "exchanges": [
{
- "at": "/value/entries/21/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/leases/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "lease"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-action",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "acquire"
+ }
+ },
+ {
+ "at": "/headers/x-ms-lease-duration",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "15"
+ }
+ },
+ {
+ "at": "/headers/x-ms-proposed-lease-id",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "11111111-2222-3333-4444-555555555555"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-lease-id": "11111111-2222-3333-4444-555555555555"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/21/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "ok"
}
},
{
- "at": "/value/entries/22/key",
+ "at": "/value/lease_id",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "11111111-2222-3333-4444-555555555555"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-with-tags",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Write an object with tags, which an HNS account does not support",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
+ ],
+ "call": {
+ "body_base64": "Zmlyc3Q=",
+ "key": "object-tests/tags/object.txt",
+ "op": "put",
+ "tags": {
+ "project": "object-tests"
+ }
+ },
+ "exchanges": [
{
- "at": "/value/entries/22/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/tags/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Zmlyc3Q="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-tags",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "project=object-tests"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/22/etag",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-6a1f4f7934bf"
- }
- },
- {
- "at": "/value/entries/22/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/22/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/22/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "error"
}
},
{
- "at": "/value/entries/22/directory",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": 409
}
},
{
- "at": "/value/entries/23/key",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/get-tags",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Read the tags of an object, which an HNS account does not support",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-tags"
+ ],
+ "call": {
+ "key": "object-tests/tags/object.txt",
+ "op": "azure.get_tags"
+ },
+ "exchanges": [
{
- "at": "/value/entries/23/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/tags/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "tags"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidQueryParameterValue"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidQueryParameterValueFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/23/etag",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-87c3fdda2bda"
- }
- },
- {
- "at": "/value/entries/23/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/23/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/23/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "error"
}
},
{
- "at": "/value/entries/23/directory",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": 400
}
},
{
- "at": "/value/entries/24/key",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "InvalidQueryParameterValue"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/set-tags",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Replace the tags of an object, which an HNS account does not support",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags"
+ ],
+ "call": {
+ "key": "object-tests/tags/object.txt",
+ "op": "azure.set_tags",
+ "tags": {
+ "project": "object-tests"
+ }
+ },
+ "exchanges": [
{
- "at": "/value/entries/24/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/tags/object.txt"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "projectobject-tests"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/xml; charset=UTF-8"
+ ]
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "BlobApiNotYetSupportedForHierarchicalNamespaceAccounts"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobApiNotYetSupportedForHierarchicalNamespaceAccountsFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/24/etag",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-4d2fcc081fd8"
- }
- },
- {
- "at": "/value/entries/24/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/24/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/24/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "error"
}
},
{
- "at": "/value/entries/24/directory",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": 400
}
},
{
- "at": "/value/entries/25/key",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "BlobApiNotYetSupportedForHierarchicalNamespaceAccounts"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-with-tier",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Write an object straight into the Cool access tier",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
+ ],
+ "call": {
+ "body_base64": "Zmlyc3Q=",
+ "key": "object-tests/tiers/object.txt",
+ "op": "put",
+ "tier": "Cool"
+ },
+ "exchanges": [
{
- "at": "/value/entries/25/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/tiers/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Zmlyc3Q="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-access-tier",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Cool"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/25/etag",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-8956db6ae017"
- }
- },
- {
- "at": "/value/entries/25/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/25/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/25/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "ok"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/set-tier-unknown",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Refuse an access tier the service does not have",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tier"
+ ],
+ "call": {
+ "key": "object-tests/tiers/object.txt",
+ "op": "azure.set_tier",
+ "tier": "Warm"
+ },
+ "exchanges": [
{
- "at": "/value/entries/25/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/tiers/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "tier"
+ }
+ },
+ {
+ "at": "/headers/x-ms-access-tier",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Warm"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidHeaderValue"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidHeaderValueFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/26/key",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "error"
}
},
{
- "at": "/value/entries/26/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": 400
}
},
{
- "at": "/value/entries/26/etag",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-7f1f55a3463b"
- }
- },
- {
- "at": "/value/entries/26/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/26/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "InvalidHeaderValue"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/set-tier-cool",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Move an object to the Cool access tier",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tier"
+ ],
+ "call": {
+ "key": "object-tests/tiers/object.txt",
+ "op": "azure.set_tier",
+ "tier": "Cool"
+ },
+ "exchanges": [
{
- "at": "/value/entries/26/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/tiers/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "tier"
+ }
+ },
+ {
+ "at": "/headers/x-ms-access-tier",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Cool"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/26/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "ok"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-internal-error",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Report a 500 InternalError answer as an error, after at most 5 retries",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ ],
+ "origin": "transient",
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/27/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 500,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InternalError"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InternalErrorThe server encountered an internal error. Please retry the request."
+ }
+ }
+ }
+ ]
},
{
- "at": "/value/entries/27/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 500,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InternalError"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InternalErrorThe server encountered an internal error. Please retry the request."
+ }
+ }
+ }
+ ],
+ "optional": true
},
{
- "at": "/value/entries/27/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-44dd81206643"
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 500,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InternalError"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InternalErrorThe server encountered an internal error. Please retry the request."
+ }
+ }
+ }
+ ],
+ "optional": true
},
{
- "at": "/value/entries/27/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 500,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InternalError"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InternalErrorThe server encountered an internal error. Please retry the request."
+ }
+ }
+ }
+ ],
+ "optional": true
},
{
- "at": "/value/entries/27/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 500,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InternalError"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InternalErrorThe server encountered an internal error. Please retry the request."
+ }
+ }
+ }
+ ],
+ "optional": true
},
{
- "at": "/value/entries/27/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 500,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InternalError"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InternalErrorThe server encountered an internal error. Please retry the request."
+ }
+ }
+ }
+ ],
+ "optional": true
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/27/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/28/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": 500
}
},
{
- "at": "/value/entries/28/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "InternalError"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-if-unmodified-since-past",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Refuse a write with 412 when the object changed after If-Unmodified-Since",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/28/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/if-unmodified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ConditionNotMet"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ConditionNotMetFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-952096734190"
- }
- },
- {
- "at": "/value/entries/28/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/28/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/28/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "error"
}
},
{
- "at": "/value/entries/28/directory",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": 412
}
},
{
- "at": "/value/entries/29/key",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "ConditionNotMet"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-content-encoding-gzip",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA",
+ "content_encoding": "gzip",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/29/size",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-encoding",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "gzip"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "CVsDGvNMZH4SPA4MSLswrA==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-bf139483d631\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/content-encoding",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "gzip"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "CVsDGvNMZH4SPA4MSLswrA==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-bf139483d631\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "ok"
}
},
{
- "at": "/value/entries/29/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-db4655ce498c"
- }
- },
- {
- "at": "/value/entries/29/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-bf139483d631\""
}
},
{
- "at": "/value/entries/29/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -56450,63 +86086,230 @@
""
]
}
- },
- {
- "at": "/value/entries/29/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/29/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-content-properties",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "cache_control": "max-age=3600",
+ "content_disposition": "attachment; filename=\"report.txt\"",
+ "content_language": "nl-NL",
+ "content_type": "text/plain; charset=utf-8",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/30/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain; charset=utf-8"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-language",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "nl-NL"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename=\"report.txt\""
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-cache-control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-bf139483d631\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain; charset=utf-8"
+ }
+ },
+ {
+ "at": "/headers/content-language",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "nl-NL"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename=\"report.txt\""
+ }
+ },
+ {
+ "at": "/headers/cache-control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-bf139483d631\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/30/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "ok"
}
},
{
- "at": "/value/entries/30/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-b2a6d305ae63"
- }
- },
- {
- "at": "/value/entries/30/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-bf139483d631\""
}
},
{
- "at": "/value/entries/30/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -56515,63 +86318,114 @@
""
]
}
- },
- {
- "at": "/value/entries/30/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/30/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/31/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
- }
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-content-type-non-ascii",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Write a Content-Type with a parameter outside ASCII, or refuse it. An HNS account takes the UTF-8 bytes but returns é as the byte e9, so they do not read back, and no encoding of a Content-Type parameter is one every reader decodes",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "content_type": "text/plain; name=\"été.txt\"",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/31/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain; name=\"été.txt\""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-bf139483d631\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/31/etag",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-23d914b576fb"
+ "value": "ok"
}
},
{
- "at": "/value/entries/31/snapshot",
- "optional": true,
+ "at": "/value/etag",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "\"fixture-bf139483d631\""
}
},
{
- "at": "/value/entries/31/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -56580,63 +86434,139 @@
""
]
}
- },
- {
- "at": "/value/entries/31/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/31/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "refused"
}
},
{
- "at": "/value/entries/32/key",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/entries/32/size",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "content_type"
}
- },
+ }
+ ]
+ },
+ {
+ "id": "operations/azure-hns/put-content-disposition-non-ascii",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Write a Content-Disposition whose filename is outside ASCII. Azure refuses a disposition byte outside ASCII with 400 InvalidMetadata, so send an RFC 6266 filename*, which any reader decodes, or refuse the value",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "content_disposition": "attachment; filename=\"été.txt\"",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/32/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename*=UTF-8''%C3%A9t%C3%A9.txt"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-bf139483d631\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-0fe87110b578"
+ "value": "ok"
}
},
{
- "at": "/value/entries/32/snapshot",
- "optional": true,
+ "at": "/value/etag",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "\"fixture-bf139483d631\""
}
},
{
- "at": "/value/entries/32/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -56645,128 +86575,220 @@
""
]
}
- },
- {
- "at": "/value/entries/32/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/32/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/33/key",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "refused"
}
},
{
- "at": "/value/entries/33/size",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": 0
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/entries/33/etag",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-55cf88c7a2e2"
- }
- },
- {
- "at": "/value/entries/33/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "content_disposition"
}
},
{
- "at": "/value/entries/33/version",
+ "at": "/status",
"optional": true,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 400
}
},
{
- "at": "/value/entries/33/is_current_version",
+ "at": "/code",
"optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/33/directory",
- "optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "InvalidMetadata"
}
- },
+ }
+ ]
+ },
+ {
+ "id": "operations/azure-hns/put-content-type-edge-spaces",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Write a content type with spaces at either end, which HTTP drops, so the service stores it trimmed. A client may refuse it",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "content_type": " text/plain ",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/34/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-content-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-bf139483d631\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-bf139483d631\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/34/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "ok"
}
},
{
- "at": "/value/entries/34/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-6815a7113351"
- }
- },
- {
- "at": "/value/entries/34/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-bf139483d631\""
}
},
{
- "at": "/value/entries/34/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -56775,63 +86797,130 @@
""
]
}
- },
- {
- "at": "/value/entries/34/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/34/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "refused"
}
},
{
- "at": "/value/entries/35/key",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/entries/35/size",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "content_type"
}
- },
+ }
+ ]
+ },
+ {
+ "id": "operations/azure-hns/put-first-version",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put first version",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "djE=",
+ "key": "object-tests/versions-mtypy4jp/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/35/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "djE="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-36af044f7dd6\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-70df51065efe"
+ "value": "ok"
}
},
{
- "at": "/value/entries/35/snapshot",
- "optional": true,
+ "at": "/value/etag",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "\"fixture-36af044f7dd6\""
}
},
{
- "at": "/value/entries/35/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -56840,63 +86929,114 @@
""
]
}
- },
- {
- "at": "/value/entries/35/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/35/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-if-match-current",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put if match current",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "cmVwbGFjZWQ=",
+ "if_match": "\"fixture-bf139483d631\"",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/36/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "cmVwbGFjZWQ="
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-bf139483d631\""
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "kbskg1kEP+mEFuJZyb3xDQ==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-12045b9dfdc3\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/36/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "ok"
}
},
{
- "at": "/value/entries/36/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-0e76caa6ea5f"
- }
- },
- {
- "at": "/value/entries/36/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-12045b9dfdc3\""
}
},
{
- "at": "/value/entries/36/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -56905,63 +87045,114 @@
""
]
}
- },
- {
- "at": "/value/entries/36/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/36/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-if-none-match-missing",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put if none match missing",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "ZnJlc2g=",
+ "if_none_match": "*",
+ "key": "object-tests/write/fresh.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/37/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/fresh.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ZnJlc2g="
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "*"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "dgEIWMg2LXMC71+UNqpmOQ==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-5be249955d3d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/37/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "ok"
}
},
{
- "at": "/value/entries/37/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-97f6d7ad109d"
- }
- },
- {
- "at": "/value/entries/37/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-5be249955d3d\""
}
},
{
- "at": "/value/entries/37/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -56970,63 +87161,105 @@
""
]
}
- },
- {
- "at": "/value/entries/37/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/37/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-key-1024",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put key 1024",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/38/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-f5596350d7a5\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/38/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "ok"
}
},
{
- "at": "/value/entries/38/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-b7df38492c3e"
- }
- },
- {
- "at": "/value/entries/38/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-f5596350d7a5\""
}
},
{
- "at": "/value/entries/38/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -57035,63 +87268,105 @@
""
]
}
- },
- {
- "at": "/value/entries/38/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/38/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-key-1025",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put key 1025",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/39/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-16d1c2f31d98\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/39/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "ok"
}
},
{
- "at": "/value/entries/39/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-ac2f2336ab74"
- }
- },
- {
- "at": "/value/entries/39/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-16d1c2f31d98\""
}
},
{
- "at": "/value/entries/39/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -57100,128 +87375,440 @@
""
]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-key-under-object",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put key under object",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/order/a/b",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/39/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/order/a/b"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "BlobNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/39/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/40/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": 404
}
},
{
- "at": "/value/entries/40/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "BlobNotFound"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-lost-the-race-to-create",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put lost the race to create",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "YW5vdGhlciBvYmplY3Q=",
+ "if_none_match": "*",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/40/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YW5vdGhlciBvYmplY3Q="
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "*"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "BlobAlreadyExists"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobAlreadyExistsFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-c2a19efa033c"
+ "value": "error"
}
},
{
- "at": "/value/entries/40/snapshot",
- "optional": true,
+ "at": "/status",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 409
}
},
{
- "at": "/value/entries/40/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "BlobAlreadyExists"
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-md5-mismatch",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put md5 mismatch",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "ZGVjbGFyZWQtYm9keQ==",
+ "checksum": {
+ "algorithm": "md5",
+ "value_base64": "eV8yArF8trw9S3cdjGyerw=="
},
+ "key": "object-tests/hashes/md5-mismatch.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/40/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/hashes/md5-mismatch.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ZGVjbGFyZWQtYm9keQ=="
+ }
+ },
+ {
+ "at": "/headers/content-md5",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "eV8yArF8trw9S3cdjGyerw=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "Md5Mismatch"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "Md5MismatchFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/40/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/41/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": 400
}
},
{
- "at": "/value/entries/41/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "Md5Mismatch"
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-metadata-empty-value",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put metadata empty value",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/empty-value.txt",
+ "metadata": {
+ "empty": ""
},
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/41/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/empty-value.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-meta-empty",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-18852ad86043\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-b9e90b553fff"
+ "value": "ok"
}
},
{
- "at": "/value/entries/41/snapshot",
- "optional": true,
+ "at": "/value/etag",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "\"fixture-18852ad86043\""
}
},
{
- "at": "/value/entries/41/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -57230,117 +87817,258 @@
""
]
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-metadata-invalid-name",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put metadata invalid name",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/invalid-name.txt",
+ "metadata": {
+ "not-valid": "1"
},
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/41/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/invalid-name.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-meta-not-valid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidMetadata"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidMetadataFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/41/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/42/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": 400
}
},
{
- "at": "/value/entries/42/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "InvalidMetadata"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/42/etag",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-0d7c0a17f740"
+ "value": "refused"
}
},
{
- "at": "/value/entries/42/snapshot",
- "optional": true,
+ "at": "/kind",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/entries/42/version",
- "optional": true,
+ "at": "/parameter",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "metadata"
}
},
{
- "at": "/value/entries/42/is_current_version",
+ "at": "/status",
"optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/42/directory",
- "optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": 400
}
},
{
- "at": "/value/entries/43/key",
- "optional": false,
+ "at": "/code",
+ "optional": true,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "InvalidMetadata"
}
- },
+ }
+ ]
+ },
+ {
+ "id": "operations/azure-hns/put-metadata-replaced",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put metadata replaced",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "Mg==",
+ "key": "object-tests/metadata/replaced.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/43/size",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/replaced.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Mg=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-c24dabf9e117\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "ok"
}
},
{
- "at": "/value/entries/43/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-e1d35759d4ac"
+ "value": "\"fixture-c24dabf9e117\""
}
},
{
- "at": "/value/entries/43/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -57349,63 +88077,350 @@
""
]
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-metadata",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put metadata",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/object.txt",
+ "metadata": {
+ "name": "value",
+ "second": "2"
},
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/43/version",
- "optional": true,
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-meta-name",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "value"
+ }
+ },
+ {
+ "at": "/headers/x-ms-meta-second",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-4d04dba3441e\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "ok"
}
},
{
- "at": "/value/entries/43/is_current_version",
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-4d04dba3441e\""
+ }
+ },
+ {
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
"values": [
null,
- false
+ ""
]
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-metadata-identifier-name",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "An Azure metadata name must be a C# identifier, which may start with an underscore and hold digits. Send _a1; only a name that is no identifier may be refused.",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/identifier-name.txt",
+ "metadata": {
+ "_a1": "1"
},
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/43/directory",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/identifier-name.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-meta-_a1",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-4d04dba3441e\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "ok"
}
},
{
- "at": "/value/entries/44/key",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "\"fixture-4d04dba3441e\""
}
},
{
- "at": "/value/entries/44/size",
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-over-snapshotted",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put over snapshotted",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "dHdv",
+ "key": "object-tests/snapshots/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/snapshots/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "dHdv"
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "uKn3Fdu2T9XFbneDxoIKYQ==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-810306ce8bc4\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "ok"
}
},
{
- "at": "/value/entries/44/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-1389b2ea70e1"
+ "value": "\"fixture-810306ce8bc4\""
}
},
{
- "at": "/value/entries/44/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -57414,139 +88429,535 @@
""
]
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-overwrite",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put overwrite",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "b3ZlcndyaXR0ZW4=",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "b3ZlcndyaXR0ZW4="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "UJ/0v/8wp3EDqsNAaOpGxw==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-3da2f422ef3c\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
},
{
- "at": "/value/entries/44/version",
- "optional": true,
+ "at": "/value/etag",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "\"fixture-3da2f422ef3c\""
}
},
{
- "at": "/value/entries/44/is_current_version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
"values": [
null,
- false
+ ""
]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-precondition-failed",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put precondition failed",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "YW5vdGhlciBvYmplY3Q=",
+ "if_match": "\"fixture-088e5dc109cf\"",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/44/directory",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YW5vdGhlciBvYmplY3Q="
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-088e5dc109cf\""
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ConditionNotMet"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ConditionNotMetFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/45/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": 412
}
},
{
- "at": "/value/entries/45/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "ConditionNotMet"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-precondition-failed-code-in-body",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put precondition failed, with the error code only in the XML body",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ ],
+ "origin": "constructed",
+ "call": {
+ "body_base64": "YW5vdGhlciBvYmplY3Q=",
+ "if_match": "\"fixture-088e5dc109cf\"",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/45/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YW5vdGhlciBvYmplY3Q="
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-088e5dc109cf\""
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ConditionNotMetFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-11c5ee820f55"
+ "value": "error"
}
},
{
- "at": "/value/entries/45/snapshot",
- "optional": true,
+ "at": "/status",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 412
}
},
{
- "at": "/value/entries/45/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "ConditionNotMet"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-refused",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
+ "key": "object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/45/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bm90aGluZyBpcyBzdG9yZWQ="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "ContainerNotFound"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "ContainerNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/45/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/46/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": 404
}
},
{
- "at": "/value/entries/46/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "ContainerNotFound"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-second-version",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put second version",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "djI=",
+ "key": "object-tests/versions-mtypy4jp/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/46/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "djI="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-ecff54f15562\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-ba489a3d8cb9"
+ "value": "ok"
}
},
{
- "at": "/value/entries/46/snapshot",
- "optional": true,
+ "at": "/value/etag",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "\"fixture-ecff54f15562\""
}
},
{
- "at": "/value/entries/46/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -57555,63 +88966,218 @@
""
]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-unauthenticated",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/46/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bm90aGluZyBpcyBzdG9yZWQ="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 401,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidAuthenticationInfo"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidAuthenticationInfoFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/46/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/47/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": 401
}
},
{
- "at": "/value/entries/47/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "InvalidAuthenticationInfo"
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-with-crc64",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put with crc64",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "ZGVjbGFyZWQtYm9keQ==",
+ "checksum": {
+ "algorithm": "azure_crc64",
+ "value_base64": "9XBvAwWoR9o="
},
+ "key": "object-tests/hashes/crc64.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/47/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/hashes/crc64.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ZGVjbGFyZWQtYm9keQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-content-crc64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "9XBvAwWoR9o="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-bf462a2f52f2\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-548645ff94c6"
+ "value": "ok"
}
},
{
- "at": "/value/entries/47/snapshot",
- "optional": true,
+ "at": "/value/etag",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "\"fixture-bf462a2f52f2\""
}
},
{
- "at": "/value/entries/47/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -57620,52 +89186,117 @@
""
]
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/put-with-md5",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put with md5",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "ZGVjbGFyZWQtYm9keQ==",
+ "checksum": {
+ "algorithm": "md5",
+ "value_base64": "N6YZkbg+Lyfxtskwn8iRCg=="
},
+ "key": "object-tests/hashes/md5.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/47/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/47/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/48/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/hashes/md5.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ZGVjbGFyZWQtYm9keQ=="
+ }
+ },
+ {
+ "at": "/headers/content-md5",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-15ae0acd3480\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/48/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "ok"
}
},
{
- "at": "/value/entries/48/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-b21f6737ba6c"
+ "value": "\"fixture-15ae0acd3480\""
}
},
{
- "at": "/value/entries/48/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -57674,63 +89305,314 @@
""
]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/snapshot",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "snapshot",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/snapshots/object.txt",
+ "op": "azure.snapshot"
+ },
+ "exchanges": [
{
- "at": "/value/entries/48/version",
- "optional": true,
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/snapshots/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "snapshot"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "error"
}
},
{
- "at": "/value/entries/48/is_current_version",
- "optional": true,
+ "at": "/status",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "is": "equal",
+ "value": 409
}
},
{
- "at": "/value/entries/48/directory",
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage-empty",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "stage empty",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "block_id_base64": "MDAwMDAz",
+ "body_base64": "",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/staged.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAz"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidHeaderValue"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidHeaderValueFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/49/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": 400
}
},
{
- "at": "/value/entries/49/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "InvalidHeaderValue"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage-escaped-id",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "stage escaped id",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "block_id_base64": "+/8=",
+ "body_base64": "b25l",
+ "key": "object-tests/multipart/escaped.bin",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/49/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/escaped.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "b25l"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "+/8="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-23eb881b6618"
+ "value": "ok"
}
},
{
- "at": "/value/entries/49/snapshot",
+ "at": "/value/etag",
"optional": true,
"rule": {
"is": "one_of",
@@ -57739,193 +89621,587 @@
""
]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage-id-too-long",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "stage id too long",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "block_id_base64": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg=",
+ "body_base64": "dGhpcmQ=",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/49/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/staged.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "dGhpcmQ="
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "OutOfRangeInput"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "OutOfRangeInputBlock ID exceeds 64 decoded bytes."
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/49/is_current_version",
- "optional": true,
+ "at": "/outcome",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "is": "equal",
+ "value": "error"
}
},
{
- "at": "/value/entries/49/directory",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": 400
}
},
{
- "at": "/value/entries/50/key",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "OutOfRangeInput"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/50/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "refused"
}
},
{
- "at": "/value/entries/50/etag",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-02c3be7f3363"
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/entries/50/snapshot",
- "optional": true,
+ "at": "/parameter",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "block_id_base64"
}
},
{
- "at": "/value/entries/50/version",
+ "at": "/status",
"optional": true,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 400
}
},
{
- "at": "/value/entries/50/is_current_version",
+ "at": "/code",
"optional": true,
"rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "is": "equal",
+ "value": "OutOfRangeInput"
}
- },
+ }
+ ]
+ },
+ {
+ "id": "operations/azure-hns/stage-mixed-length-id",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "stage mixed length id",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy",
+ "body_base64": "dGhpcmQ=",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/50/directory",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/staged.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "dGhpcmQ="
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidBlobOrBlock"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidBlobOrBlockFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/51/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": 400
}
},
{
- "at": "/value/entries/51/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "InvalidBlobOrBlock"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage-mixed-length-id-code-in-body",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "stage mixed length id, with the error code only in the XML body",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ ],
+ "origin": "constructed",
+ "call": {
+ "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy",
+ "body_base64": "dGhpcmQ=",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/51/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/staged.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "dGhpcmQ="
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidBlobOrBlockFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-86bca962bd30"
+ "value": "error"
}
},
{
- "at": "/value/entries/51/snapshot",
- "optional": true,
+ "at": "/status",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 400
}
},
{
- "at": "/value/entries/51/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "InvalidBlobOrBlock"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage-unauthenticated",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "block_id_base64": "MDAwMDAx",
+ "body_base64": "Zmlyc3Q=",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/51/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/staged.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Zmlyc3Q="
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAx"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 401,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidAuthenticationInfo"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidAuthenticationInfoFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/51/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/52/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": 401
}
},
{
- "at": "/value/entries/52/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": "InvalidAuthenticationInfo"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "stage",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/52/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/staged.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-1696791242e8"
+ "value": "ok"
}
},
{
- "at": "/value/entries/52/snapshot",
+ "at": "/value/etag",
"optional": true,
"rule": {
"is": "one_of",
@@ -57934,74 +90210,316 @@
""
]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage-id-64-bytes",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "A block ID decodes to at most 64 bytes, and Azure stages a block whose ID decodes to exactly 64. Send it; only a longer ID may be refused.",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "block_id_base64": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/52/version",
- "optional": true,
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/staged.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA=="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "ok"
}
},
{
- "at": "/value/entries/52/is_current_version",
+ "at": "/value/etag",
"optional": true,
"rule": {
"is": "one_of",
"values": [
null,
- false
+ ""
]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage-key-question",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "stage, with the key \"question?mark.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/52/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/question?mark.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/53/key",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": "ok"
}
},
{
- "at": "/value/entries/53/size",
- "optional": false,
+ "at": "/value/etag",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": 0
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage-key-hash",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "stage, with the key \"hash#tag.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/53/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/hash#tag.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-b40699a1e1db"
- }
- },
- {
- "at": "/value/entries/53/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "ok"
}
},
{
- "at": "/value/entries/53/version",
+ "at": "/value/etag",
"optional": true,
"rule": {
"is": "one_of",
@@ -58010,52 +90528,104 @@
""
]
}
- },
- {
- "at": "/value/entries/53/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/53/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/54/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
- }
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage-key-percent",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "stage, with the key \"percent%20.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/54/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/percent%20.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/54/etag",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-d3fa18807e94"
+ "value": "ok"
}
},
{
- "at": "/value/entries/54/snapshot",
+ "at": "/value/etag",
"optional": true,
"rule": {
"is": "one_of",
@@ -58064,63 +90634,210 @@
""
]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage-key-plus",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "stage, with the key \"plus+plus.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/54/version",
- "optional": true,
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/plus+plus.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "ok"
}
},
{
- "at": "/value/entries/54/is_current_version",
+ "at": "/value/etag",
"optional": true,
"rule": {
"is": "one_of",
"values": [
null,
- false
+ ""
]
}
- },
- {
- "at": "/value/entries/54/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/55/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
- }
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage-key-space",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "stage, with the key \"space name.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/space name.txt",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/55/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/space name.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/55/etag",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-d55c43fd1f89"
+ "value": "ok"
}
},
{
- "at": "/value/entries/55/snapshot",
+ "at": "/value/etag",
"optional": true,
"rule": {
"is": "one_of",
@@ -58129,74 +90846,210 @@
""
]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage-key-non-ascii",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "stage, with the key \"café/雪.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/55/version",
- "optional": true,
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/café/雪.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "ok"
}
},
{
- "at": "/value/entries/55/is_current_version",
+ "at": "/value/etag",
"optional": true,
"rule": {
"is": "one_of",
"values": [
null,
- false
+ ""
]
}
- },
- {
- "at": "/value/entries/55/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/56/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
- }
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage-key-double-slash",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "stage, with the key \"double//slash.txt\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/56/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/double//slash.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/56/etag",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-989ce64e20d6"
- }
- },
- {
- "at": "/value/entries/56/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "ok"
}
},
{
- "at": "/value/entries/56/version",
+ "at": "/value/etag",
"optional": true,
"rule": {
"is": "one_of",
@@ -58205,63 +91058,235 @@
""
]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage-key-trailing-slash",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "stage, with the key \"trailing-slash/\"",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "block_id_base64": "MDAwMDAy",
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "azure.stage_block"
+ },
+ "exchanges": [
{
- "at": "/value/entries/56/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/trailing-slash/"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "c2Vjb25k"
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidUri"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidUriFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/56/directory",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": true
+ "value": "error"
}
},
{
- "at": "/value/entries/57/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s"
+ "value": 400
}
},
{
- "at": "/value/entries/57/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "InvalidUri"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/stage-from-url",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "Stage a block from bytes 0 to 2 at a URL with Put Block From URL, the range named in x-ms-source-range with an inclusive end, as bytes=0-2",
+ "sources": [
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/put-block-from-url"
+ ],
+ "call": {
+ "block_id_base64": "MDAwMDAy",
+ "key": "object-tests/multipart/staged.bin",
+ "op": "azure.stage_block_from_url",
+ "source_key": "object-tests/copy/source.txt",
+ "source_range": {
+ "end": 3,
+ "start": 0
+ }
+ },
+ "exchanges": [
{
- "at": "/value/entries/57/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/staged.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "block"
+ }
+ },
+ {
+ "at": "/query/blockid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDAwMDAy"
+ }
+ },
+ {
+ "at": "/headers/x-ms-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-ms-source-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=0-2"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type",
+ "x-ms-copy-source-authorization"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 201,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-request-server-encrypted": "true"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-e6b534521353"
- }
- },
- {
- "at": "/value/entries/57/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "ok"
}
},
{
- "at": "/value/entries/57/version",
+ "at": "/value/etag",
"optional": true,
"rule": {
"is": "one_of",
@@ -58270,65 +91295,22 @@
""
]
}
- },
- {
- "at": "/value/entries/57/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/57/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 58
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-max-keys-zero",
+ "id": "operations/azure-hns/staged-absent",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list max keys zero",
+ "purpose": "staged absent",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list_page",
- "page_size": 0,
- "prefix": "object-tests/board/"
+ "key": "object-tests/multipart/absent.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -58348,7 +91330,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/absent.bin"
}
},
{
@@ -58359,53 +91341,37 @@
"value": ""
}
},
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
{
"at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "value": "blocklist"
}
},
{
- "at": "/query/maxresults",
+ "at": "/query/blocklisttype",
"optional": false,
"rule": {
"is": "equal",
- "value": "0"
+ "value": "all"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "OutOfRangeQueryParameterValue"
+ "x-ms-error-code": "BlobNotFound"
},
"body": {
"encoding": "utf8",
- "data": "OutOfRangeQueryParameterValueFixture error"
+ "data": "BlobNotFoundFixture error"
}
}
}
@@ -58426,7 +91392,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": 404
}
},
{
@@ -58434,67 +91400,133 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "OutOfRangeQueryParameterValue"
+ "value": "BlobNotFound"
}
}
],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/staged-absent-code-in-body",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "staged absent, with the error code only in the XML body",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
+ "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ ],
+ "origin": "constructed",
+ "call": {
+ "key": "object-tests/multipart/absent.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
+ },
+ "exchanges": [
{
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/absent.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blocklist"
+ }
+ },
+ {
+ "at": "/query/blocklisttype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "all"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "BlobNotFoundFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/parameter",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "page_size"
+ "value": "error"
}
},
{
"at": "/status",
- "optional": true,
+ "optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": 404
}
},
{
"at": "/code",
- "optional": true,
+ "optional": false,
"rule": {
"is": "equal",
- "value": "OutOfRangeQueryParameterValue"
+ "value": "BlobNotFound"
}
}
- ]
+ ],
+ "refusal": null
},
{
- "id": "operations/azure-hns/list-metadata",
+ "id": "operations/azure-hns/staged-after-commit",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list metadata",
+ "purpose": "staged after commit",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "include": [
- "metadata"
- ],
- "op": "list_page",
- "prefix": "object-tests/metadata-listed/"
+ "key": "object-tests/multipart/committed.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -58514,7 +91546,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/committed.bin"
}
},
{
@@ -58525,36 +91557,20 @@
"value": ""
}
},
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
{
"at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/metadata-listed/"
+ "value": "blocklist"
}
},
{
- "at": "/query/include",
+ "at": "/query/blocklisttype",
"optional": false,
"rule": {
"is": "equal",
- "value": "metadata"
+ "value": "all"
}
}
],
@@ -58567,12 +91583,13 @@
"date": {
"from": "now"
},
+ "etag": "\"fixture-8ec031f3abfa\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/metadata-listed/object-tests/metadata-listed/plain.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-a2cc4a9b7156file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/metadata-listed/shadowed.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-3471a2a78a02file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletruex"
+ "data": "MDAwMDAx5MDAwMDAy6"
},
"framing": "chunked"
}
@@ -58590,137 +91607,39 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/metadata-listed/plain.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-a2cc4a9b7156"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/1/key",
+ "at": "/value/committed/0/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/metadata-listed/shadowed.txt"
+ "value": "MDAwMDAx"
}
},
{
- "at": "/value/entries/1/size",
+ "at": "/value/committed/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 5
}
},
{
- "at": "/value/entries/1/etag",
+ "at": "/value/committed/1/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-3471a2a78a02"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "MDAwMDAy"
}
},
{
- "at": "/value/entries/1/content_md5_base64",
+ "at": "/value/committed/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": 6
}
},
{
- "at": "/value/entries",
+ "at": "/value/committed",
"optional": false,
"rule": {
"is": "array_length",
@@ -58728,58 +91647,28 @@
}
},
{
- "at": "/value/prefixes",
+ "at": "/value/uncommitted",
"optional": false,
"rule": {
"is": "array_length",
"value": 0
}
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/value/entries/0/metadata",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": {
- "label": "c"
- }
- }
- },
- {
- "at": "/value/entries/1/metadata",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": {
- "Metadata": "x",
- "label": "b"
- }
- }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-next-page",
+ "id": "operations/azure-hns/staged-after-replacement",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list next page",
+ "purpose": "staged after replacement",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "continuation_token": "fixture-marker+/17aa95c4a402=",
- "op": "list_page",
- "page_size": 2,
- "prefix": "object-tests/board/"
+ "key": "object-tests/multipart/replaced.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -58799,7 +91688,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/replaced.bin"
}
},
{
@@ -58810,44 +91699,20 @@
"value": ""
}
},
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
{
"at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/maxresults",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "blocklist"
}
},
{
- "at": "/query/marker",
+ "at": "/query/blocklisttype",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-marker+/17aa95c4a402="
+ "value": "all"
}
}
],
@@ -58860,12 +91725,13 @@
"date": {
"from": "now"
},
+ "etag": "\"fixture-9c5e55ff559c\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/board/fixture-marker+/17aa95c4a402=2object-tests/board/nested/c.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4125625a1056file1application/octet-streamSooI8J03tzeVZJA4QItfMw==BlockBlobHottrueunlockedavailabletrueobject-tests/board/z.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0d608f7e2d51file2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
+ "data": "MDAwMDAx5"
},
"framing": "chunked"
}
@@ -58883,174 +91749,52 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/nested/c.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-4125625a1056"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "SooI8J03tzeVZJA4QItfMw=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/z.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/1/etag",
+ "at": "/value/committed/0/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-0d608f7e2d51"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "MDAwMDAx"
}
},
{
- "at": "/value/entries/1/content_md5_base64",
+ "at": "/value/committed/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "Je0by0I7C3IA9IX8X/ccjg=="
+ "value": 5
}
},
{
- "at": "/value/entries",
+ "at": "/value/committed",
"optional": false,
"rule": {
"is": "array_length",
- "value": 2
+ "value": 1
}
},
{
- "at": "/value/prefixes",
+ "at": "/value/uncommitted",
"optional": false,
"rule": {
"is": "array_length",
"value": 0
}
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-pagination",
+ "id": "operations/azure-hns/staged-after-whole-write",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list pagination",
+ "purpose": "staged after whole write",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list",
- "page_size": 1,
- "prefix": ""
+ "key": "object-tests/multipart/whole.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -59070,7 +91814,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/whole.bin"
}
},
{
@@ -59081,36 +91825,20 @@
"value": ""
}
},
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
{
"at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "blocklist"
}
},
{
- "at": "/query/maxresults",
+ "at": "/query/blocklisttype",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "all"
}
}
],
@@ -59123,26 +91851,62 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
+ "etag": "\"fixture-09c6ba50f443\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+Zmlyc3Q8L05hbWU+PFByb3BlcnRpZXM+PExhc3QtTW9kaWZpZWQ+TW9uLCAwMSBKYW4gMjAyNCAwMDowMDowMCBHTVQ8L0xhc3QtTW9kaWZpZWQ+PEV0YWc+ImZpeHR1cmUiPC9FdGFnPjxDb250ZW50LUxlbmd0aD41PC9Db250ZW50LUxlbmd0aD48QmxvYlR5cGU+QmxvY2tCbG9iPC9CbG9iVHlwZT48L1Byb3BlcnRpZXM+PC9CbG9iPjwvQmxvYnM+PE5leHRNYXJrZXI+b3BhcXVlKy89PC9OZXh0TWFya2VyPjwvRW51bWVyYXRpb25SZXN1bHRzPg=="
+ "encoding": "utf8",
+ "data": ""
},
"framing": "chunked"
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/committed",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
},
+ {
+ "at": "/value/uncommitted",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/staged-committed-empty",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "staged committed empty",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/multipart/staged.bin",
+ "kind": "committed",
+ "op": "azure.list_blocks"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -59160,7 +91924,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/staged.bin"
}
},
{
@@ -59171,44 +91935,20 @@
"value": ""
}
},
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
{
"at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/marker",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "opaque+/="
- }
- },
- {
- "at": "/query/prefix",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "blocklist"
}
},
{
- "at": "/query/maxresults",
+ "at": "/query/blocklisttype",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "committed"
}
}
],
@@ -59221,20 +91961,12 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+c2Vjb25kPC9OYW1lPjxQcm9wZXJ0aWVzPjxMYXN0LU1vZGlmaWVkPk1vbiwgMDEgSmFuIDIwMjQgMDA6MDA6MDAgR01UPC9MYXN0LU1vZGlmaWVkPjxFdGFnPiJmaXh0dXJlIjwvRXRhZz48Q29udGVudC1MZW5ndGg+NTwvQ29udGVudC1MZW5ndGg+PEJsb2JUeXBlPkJsb2NrQmxvYjwvQmxvYlR5cGU+PC9Qcm9wZXJ0aWVzPjwvQmxvYj48L0Jsb2JzPjxOZXh0TWFya2VyPjwvTmV4dE1hcmtlcj48L0VudW1lcmF0aW9uUmVzdWx0cz4="
+ "encoding": "utf8",
+ "data": ""
},
"framing": "chunked"
}
@@ -59252,31 +91984,36 @@
}
},
{
- "at": "/value/keys",
+ "at": "/value/committed",
"optional": false,
"rule": {
- "is": "equal",
- "value": [
- "first",
- "second"
- ]
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/uncommitted",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-order-delimited",
+ "id": "operations/azure-hns/staged-committed-nothing",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list order delimited",
+ "purpose": "staged committed nothing",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/order/"
+ "key": "object-tests/multipart/empty.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -59296,7 +92033,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/empty.bin"
}
},
{
@@ -59307,36 +92044,20 @@
"value": ""
}
},
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
{
"at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/"
+ "value": "blocklist"
}
},
{
- "at": "/query/delimiter",
+ "at": "/query/blocklisttype",
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "all"
}
}
],
@@ -59349,12 +92070,13 @@
"date": {
"from": "now"
},
+ "etag": "\"fixture-072bed78cc6a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/order//object-tests/order/AMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-033751098c10file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/aMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1450d5552b20file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a-bMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-179d07a80272file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-5d99f4a9cbbefile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a0Mon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e5b8569421a3file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/bMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-2ccf5ed23a16file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/éMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-cb02153208adfile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ "data": ""
},
"framing": "chunked"
}
@@ -59372,498 +92094,161 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/A"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-033751098c10"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-1450d5552b20"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a-b"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-179d07a80272"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a.txt"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-5d99f4a9cbbe"
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/3/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/4/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a0"
- }
- },
- {
- "at": "/value/entries/4/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/4/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-e5b8569421a3"
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/4/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/5/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/b"
- }
- },
- {
- "at": "/value/entries/5/size",
+ "at": "/value/committed",
"optional": false,
"rule": {
- "is": "equal",
- "value": 1
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/value/entries/5/etag",
+ "at": "/value/uncommitted",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-2ccf5ed23a16"
- }
- },
- {
- "at": "/value/entries/5/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "is": "array_length",
+ "value": 0
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/staged-escaped-id",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "staged escaped id",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/multipart/escaped.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
+ },
+ "exchanges": [
{
- "at": "/value/entries/5/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/escaped.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blocklist"
+ }
+ },
+ {
+ "at": "/query/blocklisttype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "all"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "+/8=3"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/6/key",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/é"
+ "value": "ok"
}
},
{
- "at": "/value/entries/6/size",
+ "at": "/value/committed",
"optional": false,
"rule": {
- "is": "equal",
- "value": 1
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/value/entries/6/etag",
+ "at": "/value/uncommitted/0/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-cb02153208ad"
- }
- },
- {
- "at": "/value/entries/6/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "+/8="
}
},
{
- "at": "/value/entries/6/content_md5_base64",
+ "at": "/value/uncommitted/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 7
+ "value": 3
}
},
{
- "at": "/value/prefixes",
+ "at": "/value/uncommitted",
"optional": false,
"rule": {
"is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": 1
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-order",
+ "id": "operations/azure-hns/staged-replacement",
"profile": "azure-hns",
"lane": "core",
- "purpose": "list order",
+ "purpose": "staged replacement",
"sources": [
"azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/order/"
+ "key": "object-tests/multipart/pending.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
},
"exchanges": [
{
@@ -59883,7 +92268,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/pending.bin"
}
},
{
@@ -59894,28 +92279,20 @@
"value": ""
}
},
- {
- "at": "/query/restype",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "container"
- }
- },
{
"at": "/query/comp",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "blocklist"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/blocklisttype",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/"
+ "value": "all"
}
}
],
@@ -59928,12 +92305,13 @@
"date": {
"from": "now"
},
+ "etag": "\"fixture-ce92c4d48b08\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
"x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/order/object-tests/order/AMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-033751098c10file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/aMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1450d5552b20file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a-bMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-179d07a80272file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-5d99f4a9cbbefile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/a0Mon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e5b8569421a3file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/bMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-2ccf5ed23a16file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/order/éMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-cb02153208adfile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ "data": "MDAwMDAx5MDAwMDAy6MDAwMDAx5"
},
"framing": "chunked"
}
@@ -59951,498 +92329,803 @@
}
},
{
- "at": "/value/entries/0/key",
+ "at": "/value/committed/0/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/A"
+ "value": "MDAwMDAx"
}
},
{
- "at": "/value/entries/0/size",
+ "at": "/value/committed/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 5
}
},
{
- "at": "/value/entries/0/etag",
+ "at": "/value/committed/1/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-033751098c10"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "MDAwMDAy"
}
},
{
- "at": "/value/entries/0/content_md5_base64",
+ "at": "/value/committed/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": 6
}
},
{
- "at": "/value/entries/1/key",
+ "at": "/value/committed",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/order/a"
+ "is": "array_length",
+ "value": 2
}
},
{
- "at": "/value/entries/1/size",
+ "at": "/value/uncommitted/0/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "MDAwMDAx"
}
},
{
- "at": "/value/entries/1/etag",
+ "at": "/value/uncommitted/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-1450d5552b20"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": 5
}
},
{
- "at": "/value/entries/1/content_md5_base64",
+ "at": "/value/uncommitted",
"optional": false,
"rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "is": "array_length",
+ "value": 1
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/staged-uncommitted-only",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "staged uncommitted only",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/multipart/staged.bin",
+ "kind": "all",
+ "op": "azure.list_blocks"
+ },
+ "exchanges": [
{
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a-b"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/staged.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blocklist"
+ }
+ },
+ {
+ "at": "/query/blocklisttype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "all"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "MDAwMDAx5MDAwMDAy6"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/2/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/entries/2/etag",
+ "at": "/value/committed",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-179d07a80272"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/value/entries/2/content_md5_base64",
+ "at": "/value/uncommitted/0/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "MDAwMDAx"
}
},
{
- "at": "/value/entries/3/key",
+ "at": "/value/uncommitted/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/a.txt"
+ "value": 5
}
},
{
- "at": "/value/entries/3/size",
+ "at": "/value/uncommitted/1/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "MDAwMDAy"
}
},
{
- "at": "/value/entries/3/etag",
+ "at": "/value/uncommitted/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-5d99f4a9cbbe"
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": 6
}
},
{
- "at": "/value/entries/3/version",
- "optional": true,
+ "at": "/value/uncommitted",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "array_length",
+ "value": 2
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure-hns/staged-uncommitted",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "staged uncommitted",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "key": "object-tests/multipart/staged.bin",
+ "kind": "uncommitted",
+ "op": "azure.list_blocks"
+ },
+ "exchanges": [
{
- "at": "/value/entries/3/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/staged.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/comp",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blocklist"
+ }
+ },
+ {
+ "at": "/query/blocklisttype",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "uncommitted"
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "MDAwMDAx5MDAwMDAy6"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/3/content_md5_base64",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "ok"
}
},
{
- "at": "/value/entries/4/key",
+ "at": "/value/committed",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/order/a0"
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/value/entries/4/size",
+ "at": "/value/uncommitted/0/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "MDAwMDAx"
}
},
{
- "at": "/value/entries/4/etag",
+ "at": "/value/uncommitted/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-e5b8569421a3"
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": 5
}
},
{
- "at": "/value/entries/4/content_md5_base64",
+ "at": "/value/uncommitted/1/id_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "MDAwMDAy"
}
},
{
- "at": "/value/entries/5/key",
+ "at": "/value/uncommitted/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/b"
+ "value": 6
}
},
{
- "at": "/value/entries/5/size",
+ "at": "/value/uncommitted",
"optional": false,
"rule": {
- "is": "equal",
- "value": 1
+ "is": "array_length",
+ "value": 2
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/abort-after-commit",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "abort after commit",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.abort_multipart",
+ "upload_id": "fixture-upload+/276ca18046f9="
+ },
+ "exchanges": [
{
- "at": "/value/entries/5/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 204,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-2ccf5ed23a16"
- }
- },
- {
- "at": "/value/entries/5/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "ok"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/abort-unknown-upload",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "abort unknown upload",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.abort_multipart",
+ "upload_id": "fixture-upload+/4d0d5ccc4993="
+ },
+ "exchanges": [
{
- "at": "/value/entries/5/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/4d0d5ccc4993="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nNoSuchUploadFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/5/content_md5_base64",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
+ "value": "error"
}
},
{
- "at": "/value/entries/6/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/é"
+ "value": 404
}
},
{
- "at": "/value/entries/6/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "NoSuchUpload"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/abort",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "abort",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/aborted.bin",
+ "op": "s3.abort_multipart",
+ "upload_id": "fixture-upload+/f85cf0cd3a3f="
+ },
+ "exchanges": [
{
- "at": "/value/entries/6/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/aborted.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/f85cf0cd3a3f="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 204,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-cb02153208ad"
- }
- },
- {
- "at": "/value/entries/6/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "ok"
}
- },
- {
- "at": "/value/entries/6/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/commit-after-abort",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "commit after abort",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/aborted.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-db71b2c0257c\"",
+ "number": 1
}
- },
+ ],
+ "upload_id": "fixture-upload+/f85cf0cd3a3f="
+ },
+ "exchanges": [
{
- "at": "/value/entries/6/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/aborted.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-db71b2c0257c\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/f85cf0cd3a3f="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nNoSuchUploadFixture error"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/aborted.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-db71b2c0257c\"1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/f85cf0cd3a3f="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nNoSuchUploadFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/6/content_md5_base64",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 7
+ "value": "error"
}
},
{
- "at": "/value/prefixes",
+ "at": "/status",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": 404
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "NoSuchUpload"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-all-order",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-lost-the-race-to-create",
+ "profile": "s3",
"lane": "core",
- "purpose": "list order",
+ "purpose": "commit lost the race to create",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "op": "list",
- "prefix": ""
+ "if_none_match": "*",
+ "key": "object-tests/multipart/guarded.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-cd3c4834c1cd\"",
+ "number": 1
+ }
+ ],
+ "upload_id": "fixture-upload+/9cd6f716dbf9="
},
"exchanges": [
{
@@ -60454,7 +93137,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -60462,65 +93145,111 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/guarded.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-cd3c4834c1cd\""
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "*"
}
},
{
- "at": "/query/restype",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "fixture-upload+/9cd6f716dbf9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
}
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "POST"
}
},
{
- "at": "/query/prefix",
- "optional": true,
+ "at": "/path",
+ "optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/multipart/guarded.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-cd3c4834c1cd\"1"
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "*"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/9cd6f716dbf9="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-type": "BlockBlob",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-state": "available",
- "x-ms-lease-status": "unlocked",
- "x-ms-request-id": "fixture-request-id",
- "x-ms-request-server-encrypted": "true",
- "x-ms-server-encrypted": "true",
- "x-ms-version": "2023-11-03"
+ }
},
"body": {
- "encoding": "base64",
- "data": "PEVudW1lcmF0aW9uUmVzdWx0cyBTZXJ2aWNlRW5kcG9pbnQ9Imh0dHA6Ly9maXh0dXJlLyIgQ29udGFpbmVyTmFtZT0iZml4dHVyZSI+PFByZWZpeD48L1ByZWZpeD48QmxvYnM+PEJsb2I+PE5hbWU+YTwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PEJsb2I+PE5hbWU+ejwvTmFtZT48UHJvcGVydGllcz48TGFzdC1Nb2RpZmllZD5Nb24sIDAxIEphbiAyMDI0IDAwOjAwOjAwIEdNVDwvTGFzdC1Nb2RpZmllZD48RXRhZz4iZml4dHVyZSI8L0V0YWc+PENvbnRlbnQtTGVuZ3RoPjU8L0NvbnRlbnQtTGVuZ3RoPjxCbG9iVHlwZT5CbG9ja0Jsb2I8L0Jsb2JUeXBlPjwvUHJvcGVydGllcz48L0Jsb2I+PC9CbG9icz48TmV4dE1hcmtlcj48L05leHRNYXJrZXI+PC9FbnVtZXJhdGlvblJlc3VsdHM+"
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
},
"framing": "chunked"
}
@@ -60534,34 +93263,48 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/keys",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": [
- "a",
- "z"
- ]
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PreconditionFailed"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-page",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-conditional-conflict",
+ "profile": "s3",
"lane": "core",
- "purpose": "list page",
+ "purpose": "Report a 409 ConditionalRequestConflict to a conditional completion as an error, without sending the completion again: AWS advises a new upload with every part staged again",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
+ "origin": "transient",
"call": {
- "op": "list_page",
- "prefix": "object-tests/board/"
+ "if_none_match": "*",
+ "key": "object-tests/multipart/guarded.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-cd3c4834c1cd\"",
+ "number": 1
+ }
+ ],
+ "upload_id": "fixture-upload+/9cd6f716dbf9="
},
"exchanges": [
{
@@ -60573,7 +93316,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -60581,57 +93324,111 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/guarded.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-cd3c4834c1cd\""
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "*"
}
},
{
- "at": "/query/restype",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "fixture-upload+/9cd6f716dbf9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
}
},
{
- "at": "/query/comp",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "/fixture/object-tests/multipart/guarded.bin"
}
},
{
- "at": "/query/prefix",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-cd3c4834c1cd\"1"
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "*"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/9cd6f716dbf9="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 409,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "object-tests/board/object-tests/board/a.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e8a4acb31ab1file8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nestedMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-bcf8c9e06f70directory0BlockBlobHottrueunlockedavailabletrueobject-tests/board/nested/c.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4125625a1056file1application/octet-streamSooI8J03tzeVZJA4QItfMw==BlockBlobHottrueunlockedavailabletrueobject-tests/board/z.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0d608f7e2d51file2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
+ "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
},
"framing": "chunked"
}
@@ -60645,307 +93442,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/a.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 8
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-e8a4acb31ab1"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/nested"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-bcf8c9e06f70"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/nested/c.txt"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-4125625a1056"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "SooI8J03tzeVZJA4QItfMw=="
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/z.txt"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-0d608f7e2d51"
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "error"
}
},
{
- "at": "/value/entries/3/content_md5_base64",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "Je0by0I7C3IA9IX8X/ccjg=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 4
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
+ "value": 409
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "ConditionalRequestConflict"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-prefix-without-slash",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-nothing",
+ "profile": "s3",
"lane": "core",
- "purpose": "list prefix without slash",
+ "purpose": "commit nothing",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/boa"
+ "key": "object-tests/multipart/guarded.bin",
+ "op": "s3.complete_multipart",
+ "parts": [],
+ "upload_id": "fixture-upload+/9cd6f716dbf9="
},
"exchanges": [
{
@@ -60957,7 +93488,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -60965,57 +93496,149 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/guarded.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-upload+/9cd6f716dbf9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
}
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nMalformedXMLFixture error"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/restype",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "POST"
}
},
{
- "at": "/query/comp",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "/fixture/object-tests/multipart/guarded.bin"
}
},
{
- "at": "/query/prefix",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/boa"
+ "value": "fixture-upload+/9cd6f716dbf9="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "object-tests/boaobject-tests/boardMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-113173402488directory0BlockBlobHottrueunlockedavailabletrueobject-tests/board/a.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-e8a4acb31ab1file8application/octet-streamJdVa0oOqQAr0ZMdtcTwHrQ==BlockBlobHottrueunlockedavailabletrueobject-tests/board/nestedMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-bcf8c9e06f70directory0BlockBlobHottrueunlockedavailabletrueobject-tests/board/nested/c.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-4125625a1056file1application/octet-streamSooI8J03tzeVZJA4QItfMw==BlockBlobHottrueunlockedavailabletrueobject-tests/board/z.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-0d608f7e2d51file2application/octet-streamJe0by0I7C3IA9IX8X/ccjg==BlockBlobHottrueunlockedavailabletrue"
+ "data": "\nMalformedXMLFixture error"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/guarded.bin"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/9cd6f716dbf9="
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nMalformedXMLFixture error"
},
"framing": "chunked"
}
@@ -61029,373 +93652,303 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-113173402488"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/a.txt"
+ "value": "error"
}
},
{
- "at": "/value/entries/1/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 8
+ "value": 400
}
},
{
- "at": "/value/entries/1/etag",
+ "at": "/code",
"optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-e8a4acb31ab1"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
"rule": {
"is": "one_of",
"values": [
- null,
- false
+ "MalformedXML",
+ "InvalidRequest"
]
}
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "JdVa0oOqQAr0ZMdtcTwHrQ=="
- }
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/2/key",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/nested"
+ "value": "refused"
}
},
{
- "at": "/value/entries/2/size",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": 0
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/entries/2/etag",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-bcf8c9e06f70"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "parts"
}
},
{
- "at": "/value/entries/2/is_current_version",
+ "at": "/status",
"optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/nested/c.txt"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
"rule": {
"is": "equal",
- "value": "fixture-4125625a1056"
+ "value": 400
}
},
{
- "at": "/value/entries/3/snapshot",
+ "at": "/code",
"optional": true,
"rule": {
"is": "one_of",
"values": [
- null,
- ""
+ "MalformedXML",
+ "InvalidRequest"
]
}
- },
- {
- "at": "/value/entries/3/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ }
+ ]
+ },
+ {
+ "id": "operations/s3/commit-out-of-order",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "commit out of order",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-32b70ae425ac\"",
+ "number": 2
+ },
+ {
+ "etag": "\"fixture-6d60d5bbaa47\"",
+ "number": 1
}
- },
+ ],
+ "upload_id": "fixture-upload+/276ca18046f9="
+ },
+ "exchanges": [
{
- "at": "/value/entries/3/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "2\"fixture-32b70ae425ac\"1\"fixture-6d60d5bbaa47\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInvalidPartOrderFixture error"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-32b70ae425ac\"2\"fixture-6d60d5bbaa47\"1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInvalidPartOrderFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/3/content_md5_base64",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "SooI8J03tzeVZJA4QItfMw=="
+ "value": "error"
}
},
{
- "at": "/value/entries/4/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/z.txt"
+ "value": 400
}
},
{
- "at": "/value/entries/4/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 2
+ "value": "InvalidPartOrder"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/4/etag",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-0d608f7e2d51"
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "refused"
}
},
{
- "at": "/value/entries/4/content_md5_base64",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": "Je0by0I7C3IA9IX8X/ccjg=="
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/entries",
+ "at": "/parameter",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 5
+ "is": "equal",
+ "value": "parts"
}
},
{
- "at": "/value/prefixes",
- "optional": false,
+ "at": "/status",
+ "optional": true,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": 400
}
},
{
- "at": "/value/continuation_token",
- "optional": false,
+ "at": "/code",
+ "optional": true,
"rule": {
"is": "equal",
- "value": ""
+ "value": "InvalidPartOrder"
}
}
- ],
- "refusal": null
+ ]
},
{
- "id": "operations/azure-hns/list-separator-keys-delimited",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-part-too-small",
+ "profile": "s3",
"lane": "core",
- "purpose": "list separator keys delimited",
+ "purpose": "commit part too small",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/separators/"
+ "key": "object-tests/multipart/small.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-7bce379c0d8f\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-32b70ae425ac\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/cd2fdba21d3f="
},
"exchanges": [
{
@@ -61407,7 +93960,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -61415,65 +93968,95 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/small.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "1\"fixture-7bce379c0d8f\"2\"fixture-32b70ae425ac\""
}
},
{
- "at": "/query/restype",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "fixture-upload+/cd2fdba21d3f="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
}
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nEntityTooSmallFixture error"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "POST"
}
},
{
- "at": "/query/prefix",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/separators/"
+ "value": "/fixture/object-tests/multipart/small.bin"
}
},
{
- "at": "/query/delimiter",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-7bce379c0d8f\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "fixture-upload+/cd2fdba21d3f="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "object-tests/separators//object-tests/separators/..leadingMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-15c8f76b7db4file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/a.b/Mon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMT0x8DF10FBAD54C650directory0BlockBlobHottrueunlockedavailabletrueobject-tests/separators/dotMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8a6559c18a1cfile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/double/Mon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMT0x8DF10FBAD3AE784directory0BlockBlobHottrueunlockedavailabletrueobject-tests/separators/space /Mon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMT0x8DF10FBAD472F18directory0BlockBlobHottrueunlockedavailabletrue"
+ "data": "\nEntityTooSmallFixture error"
},
"framing": "chunked"
}
@@ -61487,201 +94070,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/..leading"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-15c8f76b7db4"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/dot"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-8a6559c18a1c"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- },
- {
- "at": "/value/prefixes/0",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/a.b/"
- }
- },
- {
- "at": "/value/prefixes/1",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/double/"
+ "value": "error"
}
},
{
- "at": "/value/prefixes/2",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/separators/space /"
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 3
+ "value": 400
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "EntityTooSmall"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-separator-keys",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-precondition-failed",
+ "profile": "s3",
"lane": "core",
- "purpose": "list separator keys",
+ "purpose": "commit precondition failed",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/separators/"
+ "if_match": "\"fixture-db71b2c0257c\"",
+ "key": "object-tests/multipart/guarded.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-cd3c4834c1cd\"",
+ "number": 1
+ }
+ ],
+ "upload_id": "fixture-upload+/9cd6f716dbf9="
},
"exchanges": [
{
@@ -61693,7 +94122,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -61701,57 +94130,111 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/guarded.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-cd3c4834c1cd\""
+ }
+ },
+ {
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "\"fixture-db71b2c0257c\""
}
},
{
- "at": "/query/restype",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "fixture-upload+/9cd6f716dbf9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
}
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "POST"
}
},
{
- "at": "/query/prefix",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/separators/"
+ "value": "/fixture/object-tests/multipart/guarded.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-cd3c4834c1cd\"1"
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-db71b2c0257c\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/9cd6f716dbf9="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "object-tests/separators/object-tests/separators/..leadingMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-15c8f76b7db4file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/a.bMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1647f69dced7directory0BlockBlobHottrueunlockedavailabletrueobject-tests/separators/a.b/cMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-75bdde0ebaf4file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/dotMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8a6559c18a1cfile1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/doubleMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-8e02901b8187directory0BlockBlobHottrueunlockedavailabletrueobject-tests/separators/double/slashMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-dffbfc983f10file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrueobject-tests/separators/space Mon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-978fd2f2d938directory0BlockBlobHottrueunlockedavailabletrueobject-tests/separators/space /xMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-ddc1aad6dee1file1application/octet-streamxMpCOKC5I4INzFCab3WEmw==BlockBlobHottrueunlockedavailabletrue"
+ "data": "\nPreconditionFailedFixture error"
},
"framing": "chunked"
}
@@ -61765,490 +94248,182 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/..leading"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-15c8f76b7db4"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/a.b"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-1647f69dced7"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/a.b/c"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-75bdde0ebaf4"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/dot"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-8a6559c18a1c"
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/3/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/4/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/double"
- }
- },
- {
- "at": "/value/entries/4/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
- }
- },
- {
- "at": "/value/entries/4/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-8e02901b8187"
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/4/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
- }
- },
- {
- "at": "/value/entries/5/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/double/slash"
- }
- },
- {
- "at": "/value/entries/5/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/5/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-dffbfc983f10"
- }
- },
- {
- "at": "/value/entries/5/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/5/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries/6/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/space "
+ "value": "error"
}
},
{
- "at": "/value/entries/6/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": 412
}
},
{
- "at": "/value/entries/6/etag",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-978fd2f2d938"
- }
- },
- {
- "at": "/value/entries/6/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "PreconditionFailed"
}
- },
- {
- "at": "/value/entries/6/directory",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": true
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/commit-single-small-part",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "commit single small part",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/single.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-3841a4d594c0\"",
+ "number": 1
}
- },
+ ],
+ "upload_id": "fixture-upload+/2b2c71a6ce04="
+ },
+ "exchanges": [
{
- "at": "/value/entries/7/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/space /x"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/single.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-3841a4d594c0\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/2b2c71a6ce04="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/single.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-3841a4d594c0\"1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/2b2c71a6ce04="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/7/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/entries/7/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-ddc1aad6dee1"
+ "value": "\"fixture-69ebdafc497f\""
}
},
{
- "at": "/value/entries/7/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -62257,78 +94432,207 @@
""
]
}
- },
- {
- "at": "/value/entries/7/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/commit-object-size-mismatch",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report S3's refusal of a completion whose parts do not add up to the object size stated in x-amz-mp-object-size",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/commit-object-size-mismatch.bin",
+ "object_size": 4,
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-3841a4d594c0\"",
+ "number": 1
}
- },
+ ],
+ "upload_id": "fixture-upload+/2b2c71a6ce04="
+ },
+ "exchanges": [
{
- "at": "/value/entries/7/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/commit-object-size-mismatch.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-3841a4d594c0\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/2b2c71a6ce04="
+ }
+ },
+ {
+ "at": "/headers/x-amz-mp-object-size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "4"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/commit-object-size-mismatch.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-3841a4d594c0\"1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/2b2c71a6ce04="
+ }
+ },
+ {
+ "at": "/headers/x-amz-mp-object-size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "4"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/7/content_md5_base64",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "xMpCOKC5I4INzFCab3WEmw=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 8
+ "value": "error"
}
},
{
- "at": "/value/prefixes",
+ "at": "/status",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": 400
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "InvalidRequest"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-snapshots-after-delete",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-object-size",
+ "profile": "s3",
"lane": "core",
- "purpose": "list snapshots after delete",
+ "purpose": "Send the object size the caller expects in x-amz-mp-object-size; a completion whose parts add up to it succeeds",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "include": [
- "snapshots"
+ "key": "object-tests/multipart/commit-object-size.bin",
+ "object_size": 3,
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-3841a4d594c0\"",
+ "number": 1
+ }
],
- "op": "list_page",
- "prefix": "object-tests/snapshots-all/"
+ "upload_id": "fixture-upload+/2b2c71a6ce04="
},
"exchanges": [
{
@@ -62340,7 +94644,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -62348,51 +94652,100 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/commit-object-size.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-3841a4d594c0\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-upload+/2b2c71a6ce04="
}
},
{
- "at": "/query/restype",
+ "at": "/headers/x-amz-mp-object-size",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "3"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/commit-object-size.binfixtureobject-tests/multipart/commit-object-size.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
}
},
{
- "at": "/query/comp",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "/fixture/object-tests/multipart/commit-object-size.bin"
}
},
{
- "at": "/query/prefix",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-3841a4d594c0\"1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/snapshots-all/"
+ "value": "fixture-upload+/2b2c71a6ce04="
}
},
{
- "at": "/query/include",
+ "at": "/headers/x-amz-mp-object-size",
"optional": false,
"rule": {
"is": "equal",
- "value": "snapshots"
+ "value": "3"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
@@ -62401,12 +94754,11 @@
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/snapshots-all/"
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/commit-object-size.binfixtureobject-tests/multipart/commit-object-size.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT"
},
"framing": "chunked"
}
@@ -62424,46 +94776,45 @@
}
},
{
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/prefixes",
+ "at": "/value/etag",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "\"fixture-69ebdafc497f\""
}
},
{
- "at": "/value/continuation_token",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-snapshots-after-snapshots-deleted",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-one-empty-part",
+ "profile": "s3",
"lane": "core",
- "purpose": "list snapshots after snapshots deleted",
+ "purpose": "Complete an upload of one empty part, which writes an empty object; a client that refuses a completion of no parts writes an empty object this way",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "include": [
- "snapshots"
+ "key": "object-tests/multipart/empty.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-3841a4d594c0\"",
+ "number": 1
+ }
],
- "op": "list_page",
- "prefix": "object-tests/snapshots-only/"
+ "upload_id": "fixture-upload+/2b2c71a6ce04="
},
"exchanges": [
{
@@ -62475,7 +94826,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -62483,51 +94834,84 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/empty.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "1\"fixture-3841a4d594c0\""
}
},
{
- "at": "/query/restype",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "fixture-upload+/2b2c71a6ce04="
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT"
},
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "POST"
}
},
{
- "at": "/query/prefix",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/snapshots-only/"
+ "value": "/fixture/object-tests/multipart/empty.bin"
}
},
{
- "at": "/query/include",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-3841a4d594c0\"1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "snapshots"
+ "value": "fixture-upload+/2b2c71a6ce04="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
@@ -62536,12 +94920,11 @@
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/snapshots-only/object-tests/snapshots-only/object.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-5d8eb33996d7file4application/octet-streamTYtghPPRZ7dsrGaiKpG+Ag==BlockBlobHottrueunlockedavailabletrue"
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT"
},
"framing": "chunked"
}
@@ -62559,42 +94942,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/snapshots-only/object.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 4
- }
- },
- {
- "at": "/value/entries/0/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-5d8eb33996d7"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-69ebdafc497f\""
}
},
{
- "at": "/value/entries/0/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -62603,68 +94959,28 @@
""
]
}
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "TYtghPPRZ7dsrGaiKpG+Ag=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-snapshots-and-versions",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-subset",
+ "profile": "s3",
"lane": "core",
- "purpose": "list snapshots and versions",
+ "purpose": "commit subset",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "include": [
- "snapshots",
- "versions"
+ "key": "object-tests/multipart/replaced.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-5945c592bad7\"",
+ "number": 1
+ }
],
- "op": "list_page",
- "prefix": "object-tests/snapshots/"
+ "upload_id": "fixture-upload+/6ba3c5e480a2="
},
"exchanges": [
{
@@ -62676,7 +94992,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -62684,51 +95000,84 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/replaced.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "1\"fixture-5945c592bad7\""
}
},
{
- "at": "/query/restype",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "fixture-upload+/6ba3c5e480a2="
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin"fixture-8631a8b6edf7"DZyVHeSVZ7c=FULL_OBJECT"
},
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "POST"
}
},
{
- "at": "/query/prefix",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/snapshots/"
+ "value": "/fixture/object-tests/multipart/replaced.bin"
}
},
{
- "at": "/query/include",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-5945c592bad7\"1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "snapshots,versions"
+ "value": "fixture-upload+/6ba3c5e480a2="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
@@ -62737,12 +95086,11 @@
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/snapshots/object-tests/snapshots/object.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-2666f63dbf0bfile3application/octet-streamuKn3Fdu2T9XFbneDxoIKYQ==BlockBlobHottrueunlockedavailabletrue"
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin"fixture-8631a8b6edf7"DZyVHeSVZ7c=FULL_OBJECT"
},
"framing": "chunked"
}
@@ -62760,31 +95108,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/snapshots/object.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 3
- }
- },
- {
- "at": "/value/entries/0/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-2666f63dbf0b"
+ "value": "\"fixture-8631a8b6edf7\""
}
},
{
- "at": "/value/entries/0/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -62793,78 +95125,362 @@
""
]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/commit-unstaged-part",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "commit unstaged part",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-6d60d5bbaa47\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-db71b2c0257c\"",
+ "number": 3
+ }
+ ],
+ "upload_id": "fixture-upload+/276ca18046f9="
+ },
+ "exchanges": [
{
- "at": "/value/entries/0/version",
- "optional": true,
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"3\"fixture-db71b2c0257c\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInvalidPartFixture error"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-db71b2c0257c\"3"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInvalidPartFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "error"
}
},
{
- "at": "/value/entries/0/is_current_version",
- "optional": true,
+ "at": "/status",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "is": "equal",
+ "value": 400
}
},
{
- "at": "/value/entries/0/content_md5_base64",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "uKn3Fdu2T9XFbneDxoIKYQ=="
+ "value": "InvalidPart"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/commit-wrong-etag",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "commit wrong etag",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-db71b2c0257c\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-32b70ae425ac\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/276ca18046f9="
+ },
+ "exchanges": [
{
- "at": "/value/entries",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-db71b2c0257c\"2\"fixture-32b70ae425ac\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInvalidPartFixture error"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-db71b2c0257c\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInvalidPartFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 1
+ "is": "equal",
+ "value": "error"
}
},
{
- "at": "/value/prefixes",
+ "at": "/status",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": 400
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "InvalidPart"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-snapshots",
- "profile": "azure-hns",
+ "id": "operations/s3/commit",
+ "profile": "s3",
"lane": "core",
- "purpose": "list snapshots",
+ "purpose": "commit",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "include": [
- "snapshots"
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-6d60d5bbaa47\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-32b70ae425ac\"",
+ "number": 2
+ }
],
- "op": "list_page",
- "prefix": "object-tests/snapshots/"
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -62876,7 +95492,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -62884,51 +95500,84 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-upload+/276ca18046f9="
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
},
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/restype",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "POST"
}
},
{
- "at": "/query/comp",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
- "at": "/query/prefix",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/snapshots/"
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
}
},
{
- "at": "/query/include",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "snapshots"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
@@ -62937,12 +95586,11 @@
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "object-tests/snapshots/object-tests/snapshots/object.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-2666f63dbf0bfile3application/octet-streamuKn3Fdu2T9XFbneDxoIKYQ==BlockBlobHottrueunlockedavailabletrue"
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
},
"framing": "chunked"
}
@@ -62960,42 +95608,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/snapshots/object.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 3
- }
- },
- {
- "at": "/value/entries/0/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-2666f63dbf0b"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-ae1b6d1d32ce\""
}
},
{
- "at": "/value/entries/0/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -63004,64 +95625,36 @@
""
]
}
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "uKn3Fdu2T9XFbneDxoIKYQ=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/list-staged-only",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-200-internal-error",
+ "profile": "s3",
"lane": "core",
- "purpose": "list staged only",
+ "purpose": "Report a completion answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://repost.aws/knowledge-center/s3-resolve-200-internalerror",
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html",
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html"
],
+ "origin": "transient",
+ "derived_from": "operations/s3/commit",
"call": {
- "op": "list_page",
- "prefix": "object-tests/multipart/staged.bin"
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-6d60d5bbaa47\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-32b70ae425ac\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -63073,7 +95666,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -63081,43 +95674,83 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
}
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/restype",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "POST"
}
},
{
- "at": "/query/comp",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
- "at": "/query/prefix",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/multipart/staged.bin"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
@@ -63125,69 +95758,17 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "object-tests/multipart/staged.bin"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
},
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/list-unauthenticated",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "op": "list_page",
- "prefix": "object-tests/"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -63197,7 +95778,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -63205,106 +95786,102 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
}
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/restype",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "POST"
}
},
{
- "at": "/query/comp",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
- "at": "/query/prefix",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 401,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "InvalidAuthenticationInfo"
+ }
},
"body": {
"encoding": "utf8",
- "data": "InvalidAuthenticationInfoFixture error"
- }
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 401
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidAuthenticationInfo"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/list-versions-of-deleted-object",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "list versions of deleted object",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "include": [
- "versions"
- ],
- "op": "list_page",
- "prefix": "object-tests/versions-mtypy4jp/deleted.txt"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -63314,7 +95891,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -63322,51 +95899,83 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
}
},
{
- "at": "/query/restype",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
}
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "POST"
}
},
{
- "at": "/query/prefix",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/versions-mtypy4jp/deleted.txt"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
- "at": "/query/include",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "versions"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
@@ -63374,72 +95983,18 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "object-tests/versions-mtypy4jp/deleted.txt"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
+ ],
+ "optional": true
},
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/list-versions",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "list versions",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "include": [
- "versions"
- ],
- "op": "list_page",
- "prefix": "object-tests/versions-mtypy4jp/"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -63449,7 +96004,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -63457,51 +96012,83 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
}
},
{
- "at": "/query/restype",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
}
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "POST"
}
},
{
- "at": "/query/prefix",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/versions-mtypy4jp/"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
- "at": "/query/include",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "versions"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
@@ -63509,134 +96096,18 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "object-tests/versions-mtypy4jp/object-tests/versions-mtypy4jp/object.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-bd163fcc78d6file2application/octet-streamGyZ2GcSBLMRu4oF0eITKUA==BlockBlobHottrueunlockedavailabletrue"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/versions-mtypy4jp/object.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-bd163fcc78d6"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GyZ2GcSBLMRu4oF0eITKUA=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
+ ],
+ "optional": true
},
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/list-written-with-hashes",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "list written with hashes",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "op": "list_page",
- "prefix": "object-tests/hashes/"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -63646,7 +96117,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -63654,43 +96125,83 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
}
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/restype",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "container"
+ "value": "POST"
}
},
{
- "at": "/query/comp",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "list"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
- "at": "/query/prefix",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/hashes/"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
@@ -63698,271 +96209,171 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "object-tests/hashes/object-tests/hashes/committed.binMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1e5253c0f65afile13application/octet-streamN6YZkbg+Lyfxtskwn8iRCg==BlockBlobHottrueunlockedavailabletrueobject-tests/hashes/crc64.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-1a8d1824b282file13application/octet-stream9XBvAwWoR9o=N6YZkbg+Lyfxtskwn8iRCg==BlockBlobHottrueunlockedavailabletrueobject-tests/hashes/md5.txtMon, 01 Jan 2024 00:00:00 GMTMon, 01 Jan 2024 00:00:00 GMTfixture-3b064c67c0acfile13application/octet-streamN6YZkbg+Lyfxtskwn8iRCg==BlockBlobHottrueunlockedavailabletrue"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/hashes/committed.bin"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 13
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-1e5253c0f65a"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/0/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "N6YZkbg+Lyfxtskwn8iRCg=="
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/hashes/crc64.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 13
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-1a8d1824b282"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/content_md5_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "N6YZkbg+Lyfxtskwn8iRCg=="
- }
- },
- {
- "at": "/value/entries/1/content_crc64_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "9XBvAwWoR9o="
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/hashes/md5.txt"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 13
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-3b064c67c0ac"
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
+ ],
+ "optional": true
},
{
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ }
+ ],
+ "optional": true
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/2/content_md5_base64",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "N6YZkbg+Lyfxtskwn8iRCg=="
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 3
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
+ "value": "error"
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "InternalError"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-container-missing",
- "profile": "azure-hns",
+ "id": "operations/s3/complete-multipart-200-error",
+ "profile": "s3",
"lane": "core",
- "purpose": "put container missing",
+ "purpose": "complete multipart 200 error",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html"
],
+ "origin": "transient",
"call": {
- "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
- "key": "object.txt",
- "op": "put"
+ "key": "object",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"part\"",
+ "number": 1
+ }
+ ],
+ "upload_id": "upload+/="
},
"exchanges": [
{
@@ -63974,7 +96385,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -63982,23 +96393,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object.txt"
+ "value": "/fixture/object"
}
},
{
- "at": "/body_base64",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "bm90aGluZyBpcyBzdG9yZWQ="
+ "value": "upload+/="
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "is": "xml",
+ "value": "1\"part\""
}
}
],
@@ -64007,18 +96418,78 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "ContainerNotFound"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
+ "encoding": "base64",
+ "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkludmFsaWRQYXJ0PC9Db2RlPjxNZXNzYWdlPmZpeHR1cmUgZXJyb3I8L01lc3NhZ2U+PC9FcnJvcj4="
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "upload+/="
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"part\"1"
+ }
}
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkludmFsaWRQYXJ0PC9Db2RlPjxNZXNzYWdlPmZpeHR1cmUgZXJyb3I8L01lc3NhZ2U+PC9FcnJvcj4="
+ },
+ "framing": "chunked"
}
}
]
@@ -64033,41 +96504,39 @@
"value": "error"
}
},
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
- },
{
"at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "ContainerNotFound"
+ "value": "InvalidPart"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-crc64-mismatch",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-key-question",
+ "profile": "s3",
"lane": "core",
- "purpose": "put crc64 mismatch",
+ "purpose": "commit, with the key \"question?mark.txt\"",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "ZGVjbGFyZWQtYm9keQ==",
- "checksum": {
- "algorithm": "azure_crc64",
- "value_base64": "khqMBK+EUSA="
- },
- "key": "object-tests/hashes/crc64-mismatch.txt",
- "op": "put"
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-6d60d5bbaa47\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-32b70ae425ac\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -64079,7 +96548,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -64087,31 +96556,78 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/hashes/crc64-mismatch.txt"
+ "value": "/fixture/object-tests/keys/question?mark.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "ZGVjbGFyZWQtYm9keQ=="
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
}
},
{
- "at": "/headers/x-ms-content-crc64",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "khqMBK+EUSA="
+ "value": "/fixture/object-tests/keys/question?mark.txt"
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -64120,18 +96636,19 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "Crc64Mismatch"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "Crc64MismatchFixture error"
- }
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -64143,40 +96660,53 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "\"fixture-ae1b6d1d32ce\""
}
},
{
- "at": "/code",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "Crc64Mismatch"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-created-empty",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-key-hash",
+ "profile": "s3",
"lane": "core",
- "purpose": "put created empty",
+ "purpose": "commit, with the key \"hash#tag.txt\"",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "",
- "key": "object-tests/write/empty.bin",
- "op": "put"
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-6d60d5bbaa47\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-32b70ae425ac\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -64188,7 +96718,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -64196,23 +96726,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/empty.bin"
+ "value": "/fixture/object-tests/keys/hash#tag.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -64221,21 +96751,74 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "1B2M2Y8AsgTpgAmY7PhCfg==",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-9373f0410116\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/hash#tag.txt"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
}
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -64255,7 +96838,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-9373f0410116\""
+ "value": "\"fixture-ae1b6d1d32ce\""
}
},
{
@@ -64273,17 +96856,27 @@
"refusal": null
},
{
- "id": "operations/azure-hns/put-created",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-key-percent",
+ "profile": "s3",
"lane": "core",
- "purpose": "put created",
+ "purpose": "commit, with the key \"percent%20.txt\"",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-6d60d5bbaa47\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-32b70ae425ac\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -64295,7 +96888,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -64303,23 +96896,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/keys/percent%20.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -64328,21 +96921,74 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-bf139483d631\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/percent%20.txt"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
}
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -64362,7 +97008,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-bf139483d631\""
+ "value": "\"fixture-ae1b6d1d32ce\""
}
},
{
@@ -64380,17 +97026,27 @@
"refusal": null
},
{
- "id": "operations/azure-hns/put-created-key-question",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-key-plus",
+ "profile": "s3",
"lane": "core",
- "purpose": "put created, with the key \"question?mark.txt\"",
+ "purpose": "commit, with the key \"plus+plus.txt\"",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/question?mark.txt",
- "op": "put"
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-6d60d5bbaa47\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-32b70ae425ac\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -64402,7 +97058,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -64410,23 +97066,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/question?mark.txt"
+ "value": "/fixture/object-tests/keys/plus+plus.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -64435,21 +97091,74 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-bf139483d631\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/plus+plus.txt"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
}
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -64469,7 +97178,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-bf139483d631\""
+ "value": "\"fixture-ae1b6d1d32ce\""
}
},
{
@@ -64487,17 +97196,27 @@
"refusal": null
},
{
- "id": "operations/azure-hns/put-created-key-hash",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-key-space",
+ "profile": "s3",
"lane": "core",
- "purpose": "put created, with the key \"hash#tag.txt\"",
+ "purpose": "commit, with the key \"space name.txt\"",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/hash#tag.txt",
- "op": "put"
+ "key": "object-tests/keys/space name.txt",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-6d60d5bbaa47\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-32b70ae425ac\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -64509,7 +97228,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -64517,23 +97236,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/hash#tag.txt"
+ "value": "/fixture/object-tests/keys/space name.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -64542,21 +97261,74 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-bf139483d631\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/space name.txtfixtureobject-tests/keys/space name.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/space name.txt"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
}
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/space name.txtfixtureobject-tests/keys/space name.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -64576,7 +97348,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-bf139483d631\""
+ "value": "\"fixture-ae1b6d1d32ce\""
}
},
{
@@ -64594,17 +97366,27 @@
"refusal": null
},
{
- "id": "operations/azure-hns/put-created-key-percent",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-key-non-ascii",
+ "profile": "s3",
"lane": "core",
- "purpose": "put created, with the key \"percent%20.txt\"",
+ "purpose": "commit, with the key \"café/雪.txt\"",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/percent%20.txt",
- "op": "put"
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-6d60d5bbaa47\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-32b70ae425ac\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -64616,7 +97398,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -64624,23 +97406,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/percent%20.txt"
+ "value": "/fixture/object-tests/keys/café/雪.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -64649,21 +97431,74 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-bf139483d631\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/café/雪.txt"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
}
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -64683,7 +97518,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-bf139483d631\""
+ "value": "\"fixture-ae1b6d1d32ce\""
}
},
{
@@ -64701,17 +97536,27 @@
"refusal": null
},
{
- "id": "operations/azure-hns/put-created-key-plus",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-key-double-slash",
+ "profile": "s3",
"lane": "core",
- "purpose": "put created, with the key \"plus+plus.txt\"",
+ "purpose": "commit, with the key \"double//slash.txt\"",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/plus+plus.txt",
- "op": "put"
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-6d60d5bbaa47\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-32b70ae425ac\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -64723,7 +97568,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -64731,23 +97576,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/plus+plus.txt"
+ "value": "/fixture/object-tests/keys/double//slash.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -64756,21 +97601,74 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-bf139483d631\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/double//slash.txtfixtureobject-tests/keys/double//slash.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/double//slash.txt"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
}
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/double//slash.txtfixtureobject-tests/keys/double//slash.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -64790,7 +97688,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-bf139483d631\""
+ "value": "\"fixture-ae1b6d1d32ce\""
}
},
{
@@ -64808,17 +97706,27 @@
"refusal": null
},
{
- "id": "operations/azure-hns/put-created-key-space",
- "profile": "azure-hns",
+ "id": "operations/s3/commit-key-trailing-slash",
+ "profile": "s3",
"lane": "core",
- "purpose": "put created, with the key \"space name.txt\"",
+ "purpose": "commit, with the key \"trailing-slash/\"",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/space name.txt",
- "op": "put"
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-6d60d5bbaa47\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-32b70ae425ac\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -64830,7 +97738,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -64838,23 +97746,78 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/space name.txt"
+ "value": "/fixture/object-tests/keys/trailing-slash/"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/trailing-slash/fixtureobject-tests/keys/trailing-slash/"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/keys/trailing-slash/"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -64863,21 +97826,19 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-bf139483d631\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/trailing-slash/fixtureobject-tests/keys/trailing-slash/"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -64897,7 +97858,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-bf139483d631\""
+ "value": "\"fixture-ae1b6d1d32ce\""
}
},
{
@@ -64915,17 +97876,16 @@
"refusal": null
},
{
- "id": "operations/azure-hns/put-created-key-non-ascii",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-accepted",
+ "profile": "s3",
"lane": "core",
- "purpose": "put created, with the key \"café/雪.txt\"",
+ "purpose": "delete accepted",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/café/雪.txt",
- "op": "put"
+ "key": "object-tests/remove/present.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -64937,7 +97897,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -64945,7 +97905,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/café/雪.txt"
+ "value": "/fixture/object-tests/remove/present.txt"
}
},
{
@@ -64953,15 +97913,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
@@ -64970,16 +97922,12 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 204,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
"date": {
"from": "now"
},
- "etag": "\"fixture-bf139483d631\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
@@ -64998,41 +97946,21 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-bf139483d631\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-created-key-double-slash",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-accepted-key-question",
+ "profile": "s3",
"lane": "core",
- "purpose": "put created, with the key \"double//slash.txt\"",
+ "purpose": "delete accepted, with the key \"question?mark.txt\"",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/double//slash.txt",
- "op": "put"
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -65044,7 +97972,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -65052,7 +97980,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/double//slash.txt"
+ "value": "/fixture/object-tests/keys/question?mark.txt"
}
},
{
@@ -65060,15 +97988,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
@@ -65077,16 +97997,12 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 204,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
"date": {
"from": "now"
},
- "etag": "\"fixture-bf139483d631\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
@@ -65105,41 +98021,21 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-bf139483d631\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-created-key-trailing-slash",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-accepted-key-hash",
+ "profile": "s3",
"lane": "core",
- "purpose": "put created, with the key \"trailing-slash/\"",
+ "purpose": "delete accepted, with the key \"hash#tag.txt\"",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/trailing-slash/",
- "op": "put"
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -65151,7 +98047,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -65159,7 +98055,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/trailing-slash/"
+ "value": "/fixture/object-tests/keys/hash#tag.txt"
}
},
{
@@ -65167,15 +98063,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
@@ -65184,17 +98072,16 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 204,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidUri"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidUriFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -65207,40 +98094,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidUri"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/copy-missing-source",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-accepted-key-percent",
+ "profile": "s3",
"lane": "core",
- "purpose": "Refuse a copy whose source does not exist",
+ "purpose": "delete accepted, with the key \"percent%20.txt\"",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/copy/target.txt",
- "op": "copy",
- "source_key": "object-tests/copy/absent.txt"
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -65252,7 +98122,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -65260,7 +98130,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/copy/target.txt"
+ "value": "/fixture/object-tests/keys/percent%20.txt"
}
},
{
@@ -65270,30 +98140,23 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/headers/x-ms-copy-source",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "https?://[^/]+/fixture/object-tests/copy/absent\\.txt"
- }
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 204,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobNotFound"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -65306,40 +98169,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlobNotFound"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/copy",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-accepted-key-plus",
+ "profile": "s3",
"lane": "core",
- "purpose": "Copy an object to another key in the same container",
+ "purpose": "delete accepted, with the key \"plus+plus.txt\"",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/copy-blob"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/copy/target.txt",
- "op": "copy",
- "source_key": "object-tests/copy/source.txt"
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -65351,7 +98197,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -65359,7 +98205,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/copy/target.txt"
+ "value": "/fixture/object-tests/keys/plus+plus.txt"
}
},
{
@@ -65369,31 +98215,23 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/headers/x-ms-copy-source",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "https?://[^/]+/fixture/object-tests/copy/source\\.txt"
- }
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 202,
+ "status": 204,
"headers": {
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-copy-id": "fixture-copy-id",
- "x-ms-copy-status": "success"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "empty"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -65408,29 +98246,21 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/copy_status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "success"
- }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/get-page-ranges",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-accepted-key-space",
+ "profile": "s3",
"lane": "core",
- "purpose": "List the written ranges of a page blob, which an HNS account does not support",
+ "purpose": "delete accepted, with the key \"space name.txt\"",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-page-ranges"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/pages/object.vhd",
- "op": "azure.get_page_ranges"
+ "key": "object-tests/keys/space name.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -65442,7 +98272,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "DELETE"
}
},
{
@@ -65450,7 +98280,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/pages/object.vhd"
+ "value": "/fixture/object-tests/keys/space name.txt"
}
},
{
@@ -65460,30 +98290,23 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "pagelist"
- }
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 204,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -65496,41 +98319,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 409
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/upload-pages-unaligned",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-accepted-key-non-ascii",
+ "profile": "s3",
"lane": "core",
- "purpose": "Refuse a page write that does not start on a 512-byte boundary, which an HNS account does not support",
+ "purpose": "delete accepted, with the key \"café/雪.txt\"",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/put-page"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=",
- "key": "object-tests/pages/object.vhd",
- "offset": 1,
- "op": "azure.upload_pages"
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -65542,7 +98347,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -65550,7 +98355,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/pages/object.vhd"
+ "value": "/fixture/object-tests/keys/café/雪.txt"
}
},
{
@@ -65558,48 +98363,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA="
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "page"
- }
- },
- {
- "at": "/headers/x-ms-page-write",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "update"
- }
- },
- {
- "at": "/headers/x-ms-range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=1-512"
+ "value": ""
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 204,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidHeaderValue"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidHeaderValueFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -65612,41 +98394,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidHeaderValue"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/upload-pages",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-accepted-key-double-slash",
+ "profile": "s3",
"lane": "core",
- "purpose": "Write the first page of a page blob, which an HNS account does not support",
+ "purpose": "delete accepted, with the key \"double//slash.txt\"",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/put-page"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA=",
- "key": "object-tests/pages/object.vhd",
- "offset": 0,
- "op": "azure.upload_pages"
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -65658,7 +98422,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -65666,7 +98430,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/pages/object.vhd"
+ "value": "/fixture/object-tests/keys/double//slash.txt"
}
},
{
@@ -65674,48 +98438,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHA="
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "page"
- }
- },
- {
- "at": "/headers/x-ms-page-write",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "update"
- }
- },
- {
- "at": "/headers/x-ms-range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=0-511"
+ "value": ""
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 204,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -65728,40 +98469,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 409
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/create-page",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-accepted-key-trailing-slash",
+ "profile": "s3",
"lane": "core",
- "purpose": "Create a page blob of 1,024 bytes, which an HNS account does not support",
+ "purpose": "delete accepted, with the key \"trailing-slash/\"",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/pages/object.vhd",
- "op": "azure.create_page",
- "size": 1024
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "delete"
},
"exchanges": [
{
@@ -65773,7 +98497,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -65781,7 +98505,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/pages/object.vhd"
+ "value": "/fixture/object-tests/keys/trailing-slash/"
}
},
{
@@ -65791,38 +98515,23 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PageBlob"
- }
- },
- {
- "at": "/headers/x-ms-blob-content-length",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1024"
- }
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 204,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -65835,40 +98544,27 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 409
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/append-block-to-block-blob",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-many",
+ "profile": "s3",
"lane": "core",
- "purpose": "Refuse an append to a block blob",
+ "purpose": "Delete several objects in one request and report each result",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html"
],
"call": {
- "body_base64": "c2Vjb25k",
- "key": "object-tests/append/object.log",
- "op": "azure.append_block"
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -65880,7 +98576,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -65888,41 +98584,60 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/append/object.log"
+ "value": "/fixture"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "c2Vjb25k"
+ "is": "xml",
+ "value": ""
}
},
{
- "at": "/query/comp",
+ "at": "/query/delete",
"optional": false,
"rule": {
"is": "equal",
- "value": "appendblock"
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc64nvme",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "InvalidBlobType"
+ }
},
"body": {
"encoding": "utf8",
- "data": "InvalidBlobTypeFixture error"
- }
+ "data": "\nobject-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txt"
+ },
+ "framing": "chunked"
}
}
]
@@ -65934,41 +98649,49 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/deleted",
"optional": false,
"rule": {
"is": "equal",
- "value": 409
+ "value": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ]
}
},
{
- "at": "/code",
+ "at": "/value/errors",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidBlobType"
+ "value": []
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/append-block-at-wrong-position",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-many-errors",
+ "profile": "s3",
"lane": "core",
- "purpose": "Refuse an append whose position condition does not match the blob length",
+ "purpose": "Report each key that S3 lists as an Error in a DeleteObjects answer, here AccessDenied, as that key's error, and the others as deleted",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html"
],
+ "origin": "transient",
+ "derived_from": "operations/s3/delete-many",
"call": {
- "append_position": 0,
- "body_base64": "c2Vjb25k",
- "key": "object-tests/append/object.log",
- "op": "azure.append_block"
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -65980,7 +98703,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -65988,49 +98711,60 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/append/object.log"
+ "value": "/fixture"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "c2Vjb25k"
+ "is": "xml",
+ "value": ""
}
},
{
- "at": "/query/comp",
+ "at": "/query/delete",
"optional": false,
"rule": {
"is": "equal",
- "value": "appendblock"
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-condition-appendpos",
+ "at": "/headers/x-amz-checksum-crc64nvme",
"optional": false,
"rule": {
- "is": "equal",
- "value": "0"
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "AppendPositionConditionNotMet"
+ }
},
"body": {
"encoding": "utf8",
- "data": "AppendPositionConditionNotMetFixture error"
- }
+ "data": "\nobject-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txtAccessDeniedFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -66042,40 +98776,1048 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/deleted",
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt"
+ ]
}
},
{
- "at": "/code",
+ "at": "/value/errors",
"optional": false,
"rule": {
"is": "equal",
- "value": "AppendPositionConditionNotMet"
+ "value": [
+ {
+ "code": "AccessDenied",
+ "key": "object-tests/batch/absent.txt"
+ }
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/append-block",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-many-1000",
+ "profile": "s3",
"lane": "core",
- "purpose": "Append a block to an append blob and report its offset",
+ "purpose": "Delete 1,000 keys in one DeleteObjects request, the most S3 takes",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/append-block"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html"
],
"call": {
- "body_base64": "c2Vjb25k",
- "key": "object-tests/append/object.log",
- "op": "azure.append_block"
+ "keys": [
+ "object-tests/batch/many-0000.txt",
+ "object-tests/batch/many-0001.txt",
+ "object-tests/batch/many-0002.txt",
+ "object-tests/batch/many-0003.txt",
+ "object-tests/batch/many-0004.txt",
+ "object-tests/batch/many-0005.txt",
+ "object-tests/batch/many-0006.txt",
+ "object-tests/batch/many-0007.txt",
+ "object-tests/batch/many-0008.txt",
+ "object-tests/batch/many-0009.txt",
+ "object-tests/batch/many-0010.txt",
+ "object-tests/batch/many-0011.txt",
+ "object-tests/batch/many-0012.txt",
+ "object-tests/batch/many-0013.txt",
+ "object-tests/batch/many-0014.txt",
+ "object-tests/batch/many-0015.txt",
+ "object-tests/batch/many-0016.txt",
+ "object-tests/batch/many-0017.txt",
+ "object-tests/batch/many-0018.txt",
+ "object-tests/batch/many-0019.txt",
+ "object-tests/batch/many-0020.txt",
+ "object-tests/batch/many-0021.txt",
+ "object-tests/batch/many-0022.txt",
+ "object-tests/batch/many-0023.txt",
+ "object-tests/batch/many-0024.txt",
+ "object-tests/batch/many-0025.txt",
+ "object-tests/batch/many-0026.txt",
+ "object-tests/batch/many-0027.txt",
+ "object-tests/batch/many-0028.txt",
+ "object-tests/batch/many-0029.txt",
+ "object-tests/batch/many-0030.txt",
+ "object-tests/batch/many-0031.txt",
+ "object-tests/batch/many-0032.txt",
+ "object-tests/batch/many-0033.txt",
+ "object-tests/batch/many-0034.txt",
+ "object-tests/batch/many-0035.txt",
+ "object-tests/batch/many-0036.txt",
+ "object-tests/batch/many-0037.txt",
+ "object-tests/batch/many-0038.txt",
+ "object-tests/batch/many-0039.txt",
+ "object-tests/batch/many-0040.txt",
+ "object-tests/batch/many-0041.txt",
+ "object-tests/batch/many-0042.txt",
+ "object-tests/batch/many-0043.txt",
+ "object-tests/batch/many-0044.txt",
+ "object-tests/batch/many-0045.txt",
+ "object-tests/batch/many-0046.txt",
+ "object-tests/batch/many-0047.txt",
+ "object-tests/batch/many-0048.txt",
+ "object-tests/batch/many-0049.txt",
+ "object-tests/batch/many-0050.txt",
+ "object-tests/batch/many-0051.txt",
+ "object-tests/batch/many-0052.txt",
+ "object-tests/batch/many-0053.txt",
+ "object-tests/batch/many-0054.txt",
+ "object-tests/batch/many-0055.txt",
+ "object-tests/batch/many-0056.txt",
+ "object-tests/batch/many-0057.txt",
+ "object-tests/batch/many-0058.txt",
+ "object-tests/batch/many-0059.txt",
+ "object-tests/batch/many-0060.txt",
+ "object-tests/batch/many-0061.txt",
+ "object-tests/batch/many-0062.txt",
+ "object-tests/batch/many-0063.txt",
+ "object-tests/batch/many-0064.txt",
+ "object-tests/batch/many-0065.txt",
+ "object-tests/batch/many-0066.txt",
+ "object-tests/batch/many-0067.txt",
+ "object-tests/batch/many-0068.txt",
+ "object-tests/batch/many-0069.txt",
+ "object-tests/batch/many-0070.txt",
+ "object-tests/batch/many-0071.txt",
+ "object-tests/batch/many-0072.txt",
+ "object-tests/batch/many-0073.txt",
+ "object-tests/batch/many-0074.txt",
+ "object-tests/batch/many-0075.txt",
+ "object-tests/batch/many-0076.txt",
+ "object-tests/batch/many-0077.txt",
+ "object-tests/batch/many-0078.txt",
+ "object-tests/batch/many-0079.txt",
+ "object-tests/batch/many-0080.txt",
+ "object-tests/batch/many-0081.txt",
+ "object-tests/batch/many-0082.txt",
+ "object-tests/batch/many-0083.txt",
+ "object-tests/batch/many-0084.txt",
+ "object-tests/batch/many-0085.txt",
+ "object-tests/batch/many-0086.txt",
+ "object-tests/batch/many-0087.txt",
+ "object-tests/batch/many-0088.txt",
+ "object-tests/batch/many-0089.txt",
+ "object-tests/batch/many-0090.txt",
+ "object-tests/batch/many-0091.txt",
+ "object-tests/batch/many-0092.txt",
+ "object-tests/batch/many-0093.txt",
+ "object-tests/batch/many-0094.txt",
+ "object-tests/batch/many-0095.txt",
+ "object-tests/batch/many-0096.txt",
+ "object-tests/batch/many-0097.txt",
+ "object-tests/batch/many-0098.txt",
+ "object-tests/batch/many-0099.txt",
+ "object-tests/batch/many-0100.txt",
+ "object-tests/batch/many-0101.txt",
+ "object-tests/batch/many-0102.txt",
+ "object-tests/batch/many-0103.txt",
+ "object-tests/batch/many-0104.txt",
+ "object-tests/batch/many-0105.txt",
+ "object-tests/batch/many-0106.txt",
+ "object-tests/batch/many-0107.txt",
+ "object-tests/batch/many-0108.txt",
+ "object-tests/batch/many-0109.txt",
+ "object-tests/batch/many-0110.txt",
+ "object-tests/batch/many-0111.txt",
+ "object-tests/batch/many-0112.txt",
+ "object-tests/batch/many-0113.txt",
+ "object-tests/batch/many-0114.txt",
+ "object-tests/batch/many-0115.txt",
+ "object-tests/batch/many-0116.txt",
+ "object-tests/batch/many-0117.txt",
+ "object-tests/batch/many-0118.txt",
+ "object-tests/batch/many-0119.txt",
+ "object-tests/batch/many-0120.txt",
+ "object-tests/batch/many-0121.txt",
+ "object-tests/batch/many-0122.txt",
+ "object-tests/batch/many-0123.txt",
+ "object-tests/batch/many-0124.txt",
+ "object-tests/batch/many-0125.txt",
+ "object-tests/batch/many-0126.txt",
+ "object-tests/batch/many-0127.txt",
+ "object-tests/batch/many-0128.txt",
+ "object-tests/batch/many-0129.txt",
+ "object-tests/batch/many-0130.txt",
+ "object-tests/batch/many-0131.txt",
+ "object-tests/batch/many-0132.txt",
+ "object-tests/batch/many-0133.txt",
+ "object-tests/batch/many-0134.txt",
+ "object-tests/batch/many-0135.txt",
+ "object-tests/batch/many-0136.txt",
+ "object-tests/batch/many-0137.txt",
+ "object-tests/batch/many-0138.txt",
+ "object-tests/batch/many-0139.txt",
+ "object-tests/batch/many-0140.txt",
+ "object-tests/batch/many-0141.txt",
+ "object-tests/batch/many-0142.txt",
+ "object-tests/batch/many-0143.txt",
+ "object-tests/batch/many-0144.txt",
+ "object-tests/batch/many-0145.txt",
+ "object-tests/batch/many-0146.txt",
+ "object-tests/batch/many-0147.txt",
+ "object-tests/batch/many-0148.txt",
+ "object-tests/batch/many-0149.txt",
+ "object-tests/batch/many-0150.txt",
+ "object-tests/batch/many-0151.txt",
+ "object-tests/batch/many-0152.txt",
+ "object-tests/batch/many-0153.txt",
+ "object-tests/batch/many-0154.txt",
+ "object-tests/batch/many-0155.txt",
+ "object-tests/batch/many-0156.txt",
+ "object-tests/batch/many-0157.txt",
+ "object-tests/batch/many-0158.txt",
+ "object-tests/batch/many-0159.txt",
+ "object-tests/batch/many-0160.txt",
+ "object-tests/batch/many-0161.txt",
+ "object-tests/batch/many-0162.txt",
+ "object-tests/batch/many-0163.txt",
+ "object-tests/batch/many-0164.txt",
+ "object-tests/batch/many-0165.txt",
+ "object-tests/batch/many-0166.txt",
+ "object-tests/batch/many-0167.txt",
+ "object-tests/batch/many-0168.txt",
+ "object-tests/batch/many-0169.txt",
+ "object-tests/batch/many-0170.txt",
+ "object-tests/batch/many-0171.txt",
+ "object-tests/batch/many-0172.txt",
+ "object-tests/batch/many-0173.txt",
+ "object-tests/batch/many-0174.txt",
+ "object-tests/batch/many-0175.txt",
+ "object-tests/batch/many-0176.txt",
+ "object-tests/batch/many-0177.txt",
+ "object-tests/batch/many-0178.txt",
+ "object-tests/batch/many-0179.txt",
+ "object-tests/batch/many-0180.txt",
+ "object-tests/batch/many-0181.txt",
+ "object-tests/batch/many-0182.txt",
+ "object-tests/batch/many-0183.txt",
+ "object-tests/batch/many-0184.txt",
+ "object-tests/batch/many-0185.txt",
+ "object-tests/batch/many-0186.txt",
+ "object-tests/batch/many-0187.txt",
+ "object-tests/batch/many-0188.txt",
+ "object-tests/batch/many-0189.txt",
+ "object-tests/batch/many-0190.txt",
+ "object-tests/batch/many-0191.txt",
+ "object-tests/batch/many-0192.txt",
+ "object-tests/batch/many-0193.txt",
+ "object-tests/batch/many-0194.txt",
+ "object-tests/batch/many-0195.txt",
+ "object-tests/batch/many-0196.txt",
+ "object-tests/batch/many-0197.txt",
+ "object-tests/batch/many-0198.txt",
+ "object-tests/batch/many-0199.txt",
+ "object-tests/batch/many-0200.txt",
+ "object-tests/batch/many-0201.txt",
+ "object-tests/batch/many-0202.txt",
+ "object-tests/batch/many-0203.txt",
+ "object-tests/batch/many-0204.txt",
+ "object-tests/batch/many-0205.txt",
+ "object-tests/batch/many-0206.txt",
+ "object-tests/batch/many-0207.txt",
+ "object-tests/batch/many-0208.txt",
+ "object-tests/batch/many-0209.txt",
+ "object-tests/batch/many-0210.txt",
+ "object-tests/batch/many-0211.txt",
+ "object-tests/batch/many-0212.txt",
+ "object-tests/batch/many-0213.txt",
+ "object-tests/batch/many-0214.txt",
+ "object-tests/batch/many-0215.txt",
+ "object-tests/batch/many-0216.txt",
+ "object-tests/batch/many-0217.txt",
+ "object-tests/batch/many-0218.txt",
+ "object-tests/batch/many-0219.txt",
+ "object-tests/batch/many-0220.txt",
+ "object-tests/batch/many-0221.txt",
+ "object-tests/batch/many-0222.txt",
+ "object-tests/batch/many-0223.txt",
+ "object-tests/batch/many-0224.txt",
+ "object-tests/batch/many-0225.txt",
+ "object-tests/batch/many-0226.txt",
+ "object-tests/batch/many-0227.txt",
+ "object-tests/batch/many-0228.txt",
+ "object-tests/batch/many-0229.txt",
+ "object-tests/batch/many-0230.txt",
+ "object-tests/batch/many-0231.txt",
+ "object-tests/batch/many-0232.txt",
+ "object-tests/batch/many-0233.txt",
+ "object-tests/batch/many-0234.txt",
+ "object-tests/batch/many-0235.txt",
+ "object-tests/batch/many-0236.txt",
+ "object-tests/batch/many-0237.txt",
+ "object-tests/batch/many-0238.txt",
+ "object-tests/batch/many-0239.txt",
+ "object-tests/batch/many-0240.txt",
+ "object-tests/batch/many-0241.txt",
+ "object-tests/batch/many-0242.txt",
+ "object-tests/batch/many-0243.txt",
+ "object-tests/batch/many-0244.txt",
+ "object-tests/batch/many-0245.txt",
+ "object-tests/batch/many-0246.txt",
+ "object-tests/batch/many-0247.txt",
+ "object-tests/batch/many-0248.txt",
+ "object-tests/batch/many-0249.txt",
+ "object-tests/batch/many-0250.txt",
+ "object-tests/batch/many-0251.txt",
+ "object-tests/batch/many-0252.txt",
+ "object-tests/batch/many-0253.txt",
+ "object-tests/batch/many-0254.txt",
+ "object-tests/batch/many-0255.txt",
+ "object-tests/batch/many-0256.txt",
+ "object-tests/batch/many-0257.txt",
+ "object-tests/batch/many-0258.txt",
+ "object-tests/batch/many-0259.txt",
+ "object-tests/batch/many-0260.txt",
+ "object-tests/batch/many-0261.txt",
+ "object-tests/batch/many-0262.txt",
+ "object-tests/batch/many-0263.txt",
+ "object-tests/batch/many-0264.txt",
+ "object-tests/batch/many-0265.txt",
+ "object-tests/batch/many-0266.txt",
+ "object-tests/batch/many-0267.txt",
+ "object-tests/batch/many-0268.txt",
+ "object-tests/batch/many-0269.txt",
+ "object-tests/batch/many-0270.txt",
+ "object-tests/batch/many-0271.txt",
+ "object-tests/batch/many-0272.txt",
+ "object-tests/batch/many-0273.txt",
+ "object-tests/batch/many-0274.txt",
+ "object-tests/batch/many-0275.txt",
+ "object-tests/batch/many-0276.txt",
+ "object-tests/batch/many-0277.txt",
+ "object-tests/batch/many-0278.txt",
+ "object-tests/batch/many-0279.txt",
+ "object-tests/batch/many-0280.txt",
+ "object-tests/batch/many-0281.txt",
+ "object-tests/batch/many-0282.txt",
+ "object-tests/batch/many-0283.txt",
+ "object-tests/batch/many-0284.txt",
+ "object-tests/batch/many-0285.txt",
+ "object-tests/batch/many-0286.txt",
+ "object-tests/batch/many-0287.txt",
+ "object-tests/batch/many-0288.txt",
+ "object-tests/batch/many-0289.txt",
+ "object-tests/batch/many-0290.txt",
+ "object-tests/batch/many-0291.txt",
+ "object-tests/batch/many-0292.txt",
+ "object-tests/batch/many-0293.txt",
+ "object-tests/batch/many-0294.txt",
+ "object-tests/batch/many-0295.txt",
+ "object-tests/batch/many-0296.txt",
+ "object-tests/batch/many-0297.txt",
+ "object-tests/batch/many-0298.txt",
+ "object-tests/batch/many-0299.txt",
+ "object-tests/batch/many-0300.txt",
+ "object-tests/batch/many-0301.txt",
+ "object-tests/batch/many-0302.txt",
+ "object-tests/batch/many-0303.txt",
+ "object-tests/batch/many-0304.txt",
+ "object-tests/batch/many-0305.txt",
+ "object-tests/batch/many-0306.txt",
+ "object-tests/batch/many-0307.txt",
+ "object-tests/batch/many-0308.txt",
+ "object-tests/batch/many-0309.txt",
+ "object-tests/batch/many-0310.txt",
+ "object-tests/batch/many-0311.txt",
+ "object-tests/batch/many-0312.txt",
+ "object-tests/batch/many-0313.txt",
+ "object-tests/batch/many-0314.txt",
+ "object-tests/batch/many-0315.txt",
+ "object-tests/batch/many-0316.txt",
+ "object-tests/batch/many-0317.txt",
+ "object-tests/batch/many-0318.txt",
+ "object-tests/batch/many-0319.txt",
+ "object-tests/batch/many-0320.txt",
+ "object-tests/batch/many-0321.txt",
+ "object-tests/batch/many-0322.txt",
+ "object-tests/batch/many-0323.txt",
+ "object-tests/batch/many-0324.txt",
+ "object-tests/batch/many-0325.txt",
+ "object-tests/batch/many-0326.txt",
+ "object-tests/batch/many-0327.txt",
+ "object-tests/batch/many-0328.txt",
+ "object-tests/batch/many-0329.txt",
+ "object-tests/batch/many-0330.txt",
+ "object-tests/batch/many-0331.txt",
+ "object-tests/batch/many-0332.txt",
+ "object-tests/batch/many-0333.txt",
+ "object-tests/batch/many-0334.txt",
+ "object-tests/batch/many-0335.txt",
+ "object-tests/batch/many-0336.txt",
+ "object-tests/batch/many-0337.txt",
+ "object-tests/batch/many-0338.txt",
+ "object-tests/batch/many-0339.txt",
+ "object-tests/batch/many-0340.txt",
+ "object-tests/batch/many-0341.txt",
+ "object-tests/batch/many-0342.txt",
+ "object-tests/batch/many-0343.txt",
+ "object-tests/batch/many-0344.txt",
+ "object-tests/batch/many-0345.txt",
+ "object-tests/batch/many-0346.txt",
+ "object-tests/batch/many-0347.txt",
+ "object-tests/batch/many-0348.txt",
+ "object-tests/batch/many-0349.txt",
+ "object-tests/batch/many-0350.txt",
+ "object-tests/batch/many-0351.txt",
+ "object-tests/batch/many-0352.txt",
+ "object-tests/batch/many-0353.txt",
+ "object-tests/batch/many-0354.txt",
+ "object-tests/batch/many-0355.txt",
+ "object-tests/batch/many-0356.txt",
+ "object-tests/batch/many-0357.txt",
+ "object-tests/batch/many-0358.txt",
+ "object-tests/batch/many-0359.txt",
+ "object-tests/batch/many-0360.txt",
+ "object-tests/batch/many-0361.txt",
+ "object-tests/batch/many-0362.txt",
+ "object-tests/batch/many-0363.txt",
+ "object-tests/batch/many-0364.txt",
+ "object-tests/batch/many-0365.txt",
+ "object-tests/batch/many-0366.txt",
+ "object-tests/batch/many-0367.txt",
+ "object-tests/batch/many-0368.txt",
+ "object-tests/batch/many-0369.txt",
+ "object-tests/batch/many-0370.txt",
+ "object-tests/batch/many-0371.txt",
+ "object-tests/batch/many-0372.txt",
+ "object-tests/batch/many-0373.txt",
+ "object-tests/batch/many-0374.txt",
+ "object-tests/batch/many-0375.txt",
+ "object-tests/batch/many-0376.txt",
+ "object-tests/batch/many-0377.txt",
+ "object-tests/batch/many-0378.txt",
+ "object-tests/batch/many-0379.txt",
+ "object-tests/batch/many-0380.txt",
+ "object-tests/batch/many-0381.txt",
+ "object-tests/batch/many-0382.txt",
+ "object-tests/batch/many-0383.txt",
+ "object-tests/batch/many-0384.txt",
+ "object-tests/batch/many-0385.txt",
+ "object-tests/batch/many-0386.txt",
+ "object-tests/batch/many-0387.txt",
+ "object-tests/batch/many-0388.txt",
+ "object-tests/batch/many-0389.txt",
+ "object-tests/batch/many-0390.txt",
+ "object-tests/batch/many-0391.txt",
+ "object-tests/batch/many-0392.txt",
+ "object-tests/batch/many-0393.txt",
+ "object-tests/batch/many-0394.txt",
+ "object-tests/batch/many-0395.txt",
+ "object-tests/batch/many-0396.txt",
+ "object-tests/batch/many-0397.txt",
+ "object-tests/batch/many-0398.txt",
+ "object-tests/batch/many-0399.txt",
+ "object-tests/batch/many-0400.txt",
+ "object-tests/batch/many-0401.txt",
+ "object-tests/batch/many-0402.txt",
+ "object-tests/batch/many-0403.txt",
+ "object-tests/batch/many-0404.txt",
+ "object-tests/batch/many-0405.txt",
+ "object-tests/batch/many-0406.txt",
+ "object-tests/batch/many-0407.txt",
+ "object-tests/batch/many-0408.txt",
+ "object-tests/batch/many-0409.txt",
+ "object-tests/batch/many-0410.txt",
+ "object-tests/batch/many-0411.txt",
+ "object-tests/batch/many-0412.txt",
+ "object-tests/batch/many-0413.txt",
+ "object-tests/batch/many-0414.txt",
+ "object-tests/batch/many-0415.txt",
+ "object-tests/batch/many-0416.txt",
+ "object-tests/batch/many-0417.txt",
+ "object-tests/batch/many-0418.txt",
+ "object-tests/batch/many-0419.txt",
+ "object-tests/batch/many-0420.txt",
+ "object-tests/batch/many-0421.txt",
+ "object-tests/batch/many-0422.txt",
+ "object-tests/batch/many-0423.txt",
+ "object-tests/batch/many-0424.txt",
+ "object-tests/batch/many-0425.txt",
+ "object-tests/batch/many-0426.txt",
+ "object-tests/batch/many-0427.txt",
+ "object-tests/batch/many-0428.txt",
+ "object-tests/batch/many-0429.txt",
+ "object-tests/batch/many-0430.txt",
+ "object-tests/batch/many-0431.txt",
+ "object-tests/batch/many-0432.txt",
+ "object-tests/batch/many-0433.txt",
+ "object-tests/batch/many-0434.txt",
+ "object-tests/batch/many-0435.txt",
+ "object-tests/batch/many-0436.txt",
+ "object-tests/batch/many-0437.txt",
+ "object-tests/batch/many-0438.txt",
+ "object-tests/batch/many-0439.txt",
+ "object-tests/batch/many-0440.txt",
+ "object-tests/batch/many-0441.txt",
+ "object-tests/batch/many-0442.txt",
+ "object-tests/batch/many-0443.txt",
+ "object-tests/batch/many-0444.txt",
+ "object-tests/batch/many-0445.txt",
+ "object-tests/batch/many-0446.txt",
+ "object-tests/batch/many-0447.txt",
+ "object-tests/batch/many-0448.txt",
+ "object-tests/batch/many-0449.txt",
+ "object-tests/batch/many-0450.txt",
+ "object-tests/batch/many-0451.txt",
+ "object-tests/batch/many-0452.txt",
+ "object-tests/batch/many-0453.txt",
+ "object-tests/batch/many-0454.txt",
+ "object-tests/batch/many-0455.txt",
+ "object-tests/batch/many-0456.txt",
+ "object-tests/batch/many-0457.txt",
+ "object-tests/batch/many-0458.txt",
+ "object-tests/batch/many-0459.txt",
+ "object-tests/batch/many-0460.txt",
+ "object-tests/batch/many-0461.txt",
+ "object-tests/batch/many-0462.txt",
+ "object-tests/batch/many-0463.txt",
+ "object-tests/batch/many-0464.txt",
+ "object-tests/batch/many-0465.txt",
+ "object-tests/batch/many-0466.txt",
+ "object-tests/batch/many-0467.txt",
+ "object-tests/batch/many-0468.txt",
+ "object-tests/batch/many-0469.txt",
+ "object-tests/batch/many-0470.txt",
+ "object-tests/batch/many-0471.txt",
+ "object-tests/batch/many-0472.txt",
+ "object-tests/batch/many-0473.txt",
+ "object-tests/batch/many-0474.txt",
+ "object-tests/batch/many-0475.txt",
+ "object-tests/batch/many-0476.txt",
+ "object-tests/batch/many-0477.txt",
+ "object-tests/batch/many-0478.txt",
+ "object-tests/batch/many-0479.txt",
+ "object-tests/batch/many-0480.txt",
+ "object-tests/batch/many-0481.txt",
+ "object-tests/batch/many-0482.txt",
+ "object-tests/batch/many-0483.txt",
+ "object-tests/batch/many-0484.txt",
+ "object-tests/batch/many-0485.txt",
+ "object-tests/batch/many-0486.txt",
+ "object-tests/batch/many-0487.txt",
+ "object-tests/batch/many-0488.txt",
+ "object-tests/batch/many-0489.txt",
+ "object-tests/batch/many-0490.txt",
+ "object-tests/batch/many-0491.txt",
+ "object-tests/batch/many-0492.txt",
+ "object-tests/batch/many-0493.txt",
+ "object-tests/batch/many-0494.txt",
+ "object-tests/batch/many-0495.txt",
+ "object-tests/batch/many-0496.txt",
+ "object-tests/batch/many-0497.txt",
+ "object-tests/batch/many-0498.txt",
+ "object-tests/batch/many-0499.txt",
+ "object-tests/batch/many-0500.txt",
+ "object-tests/batch/many-0501.txt",
+ "object-tests/batch/many-0502.txt",
+ "object-tests/batch/many-0503.txt",
+ "object-tests/batch/many-0504.txt",
+ "object-tests/batch/many-0505.txt",
+ "object-tests/batch/many-0506.txt",
+ "object-tests/batch/many-0507.txt",
+ "object-tests/batch/many-0508.txt",
+ "object-tests/batch/many-0509.txt",
+ "object-tests/batch/many-0510.txt",
+ "object-tests/batch/many-0511.txt",
+ "object-tests/batch/many-0512.txt",
+ "object-tests/batch/many-0513.txt",
+ "object-tests/batch/many-0514.txt",
+ "object-tests/batch/many-0515.txt",
+ "object-tests/batch/many-0516.txt",
+ "object-tests/batch/many-0517.txt",
+ "object-tests/batch/many-0518.txt",
+ "object-tests/batch/many-0519.txt",
+ "object-tests/batch/many-0520.txt",
+ "object-tests/batch/many-0521.txt",
+ "object-tests/batch/many-0522.txt",
+ "object-tests/batch/many-0523.txt",
+ "object-tests/batch/many-0524.txt",
+ "object-tests/batch/many-0525.txt",
+ "object-tests/batch/many-0526.txt",
+ "object-tests/batch/many-0527.txt",
+ "object-tests/batch/many-0528.txt",
+ "object-tests/batch/many-0529.txt",
+ "object-tests/batch/many-0530.txt",
+ "object-tests/batch/many-0531.txt",
+ "object-tests/batch/many-0532.txt",
+ "object-tests/batch/many-0533.txt",
+ "object-tests/batch/many-0534.txt",
+ "object-tests/batch/many-0535.txt",
+ "object-tests/batch/many-0536.txt",
+ "object-tests/batch/many-0537.txt",
+ "object-tests/batch/many-0538.txt",
+ "object-tests/batch/many-0539.txt",
+ "object-tests/batch/many-0540.txt",
+ "object-tests/batch/many-0541.txt",
+ "object-tests/batch/many-0542.txt",
+ "object-tests/batch/many-0543.txt",
+ "object-tests/batch/many-0544.txt",
+ "object-tests/batch/many-0545.txt",
+ "object-tests/batch/many-0546.txt",
+ "object-tests/batch/many-0547.txt",
+ "object-tests/batch/many-0548.txt",
+ "object-tests/batch/many-0549.txt",
+ "object-tests/batch/many-0550.txt",
+ "object-tests/batch/many-0551.txt",
+ "object-tests/batch/many-0552.txt",
+ "object-tests/batch/many-0553.txt",
+ "object-tests/batch/many-0554.txt",
+ "object-tests/batch/many-0555.txt",
+ "object-tests/batch/many-0556.txt",
+ "object-tests/batch/many-0557.txt",
+ "object-tests/batch/many-0558.txt",
+ "object-tests/batch/many-0559.txt",
+ "object-tests/batch/many-0560.txt",
+ "object-tests/batch/many-0561.txt",
+ "object-tests/batch/many-0562.txt",
+ "object-tests/batch/many-0563.txt",
+ "object-tests/batch/many-0564.txt",
+ "object-tests/batch/many-0565.txt",
+ "object-tests/batch/many-0566.txt",
+ "object-tests/batch/many-0567.txt",
+ "object-tests/batch/many-0568.txt",
+ "object-tests/batch/many-0569.txt",
+ "object-tests/batch/many-0570.txt",
+ "object-tests/batch/many-0571.txt",
+ "object-tests/batch/many-0572.txt",
+ "object-tests/batch/many-0573.txt",
+ "object-tests/batch/many-0574.txt",
+ "object-tests/batch/many-0575.txt",
+ "object-tests/batch/many-0576.txt",
+ "object-tests/batch/many-0577.txt",
+ "object-tests/batch/many-0578.txt",
+ "object-tests/batch/many-0579.txt",
+ "object-tests/batch/many-0580.txt",
+ "object-tests/batch/many-0581.txt",
+ "object-tests/batch/many-0582.txt",
+ "object-tests/batch/many-0583.txt",
+ "object-tests/batch/many-0584.txt",
+ "object-tests/batch/many-0585.txt",
+ "object-tests/batch/many-0586.txt",
+ "object-tests/batch/many-0587.txt",
+ "object-tests/batch/many-0588.txt",
+ "object-tests/batch/many-0589.txt",
+ "object-tests/batch/many-0590.txt",
+ "object-tests/batch/many-0591.txt",
+ "object-tests/batch/many-0592.txt",
+ "object-tests/batch/many-0593.txt",
+ "object-tests/batch/many-0594.txt",
+ "object-tests/batch/many-0595.txt",
+ "object-tests/batch/many-0596.txt",
+ "object-tests/batch/many-0597.txt",
+ "object-tests/batch/many-0598.txt",
+ "object-tests/batch/many-0599.txt",
+ "object-tests/batch/many-0600.txt",
+ "object-tests/batch/many-0601.txt",
+ "object-tests/batch/many-0602.txt",
+ "object-tests/batch/many-0603.txt",
+ "object-tests/batch/many-0604.txt",
+ "object-tests/batch/many-0605.txt",
+ "object-tests/batch/many-0606.txt",
+ "object-tests/batch/many-0607.txt",
+ "object-tests/batch/many-0608.txt",
+ "object-tests/batch/many-0609.txt",
+ "object-tests/batch/many-0610.txt",
+ "object-tests/batch/many-0611.txt",
+ "object-tests/batch/many-0612.txt",
+ "object-tests/batch/many-0613.txt",
+ "object-tests/batch/many-0614.txt",
+ "object-tests/batch/many-0615.txt",
+ "object-tests/batch/many-0616.txt",
+ "object-tests/batch/many-0617.txt",
+ "object-tests/batch/many-0618.txt",
+ "object-tests/batch/many-0619.txt",
+ "object-tests/batch/many-0620.txt",
+ "object-tests/batch/many-0621.txt",
+ "object-tests/batch/many-0622.txt",
+ "object-tests/batch/many-0623.txt",
+ "object-tests/batch/many-0624.txt",
+ "object-tests/batch/many-0625.txt",
+ "object-tests/batch/many-0626.txt",
+ "object-tests/batch/many-0627.txt",
+ "object-tests/batch/many-0628.txt",
+ "object-tests/batch/many-0629.txt",
+ "object-tests/batch/many-0630.txt",
+ "object-tests/batch/many-0631.txt",
+ "object-tests/batch/many-0632.txt",
+ "object-tests/batch/many-0633.txt",
+ "object-tests/batch/many-0634.txt",
+ "object-tests/batch/many-0635.txt",
+ "object-tests/batch/many-0636.txt",
+ "object-tests/batch/many-0637.txt",
+ "object-tests/batch/many-0638.txt",
+ "object-tests/batch/many-0639.txt",
+ "object-tests/batch/many-0640.txt",
+ "object-tests/batch/many-0641.txt",
+ "object-tests/batch/many-0642.txt",
+ "object-tests/batch/many-0643.txt",
+ "object-tests/batch/many-0644.txt",
+ "object-tests/batch/many-0645.txt",
+ "object-tests/batch/many-0646.txt",
+ "object-tests/batch/many-0647.txt",
+ "object-tests/batch/many-0648.txt",
+ "object-tests/batch/many-0649.txt",
+ "object-tests/batch/many-0650.txt",
+ "object-tests/batch/many-0651.txt",
+ "object-tests/batch/many-0652.txt",
+ "object-tests/batch/many-0653.txt",
+ "object-tests/batch/many-0654.txt",
+ "object-tests/batch/many-0655.txt",
+ "object-tests/batch/many-0656.txt",
+ "object-tests/batch/many-0657.txt",
+ "object-tests/batch/many-0658.txt",
+ "object-tests/batch/many-0659.txt",
+ "object-tests/batch/many-0660.txt",
+ "object-tests/batch/many-0661.txt",
+ "object-tests/batch/many-0662.txt",
+ "object-tests/batch/many-0663.txt",
+ "object-tests/batch/many-0664.txt",
+ "object-tests/batch/many-0665.txt",
+ "object-tests/batch/many-0666.txt",
+ "object-tests/batch/many-0667.txt",
+ "object-tests/batch/many-0668.txt",
+ "object-tests/batch/many-0669.txt",
+ "object-tests/batch/many-0670.txt",
+ "object-tests/batch/many-0671.txt",
+ "object-tests/batch/many-0672.txt",
+ "object-tests/batch/many-0673.txt",
+ "object-tests/batch/many-0674.txt",
+ "object-tests/batch/many-0675.txt",
+ "object-tests/batch/many-0676.txt",
+ "object-tests/batch/many-0677.txt",
+ "object-tests/batch/many-0678.txt",
+ "object-tests/batch/many-0679.txt",
+ "object-tests/batch/many-0680.txt",
+ "object-tests/batch/many-0681.txt",
+ "object-tests/batch/many-0682.txt",
+ "object-tests/batch/many-0683.txt",
+ "object-tests/batch/many-0684.txt",
+ "object-tests/batch/many-0685.txt",
+ "object-tests/batch/many-0686.txt",
+ "object-tests/batch/many-0687.txt",
+ "object-tests/batch/many-0688.txt",
+ "object-tests/batch/many-0689.txt",
+ "object-tests/batch/many-0690.txt",
+ "object-tests/batch/many-0691.txt",
+ "object-tests/batch/many-0692.txt",
+ "object-tests/batch/many-0693.txt",
+ "object-tests/batch/many-0694.txt",
+ "object-tests/batch/many-0695.txt",
+ "object-tests/batch/many-0696.txt",
+ "object-tests/batch/many-0697.txt",
+ "object-tests/batch/many-0698.txt",
+ "object-tests/batch/many-0699.txt",
+ "object-tests/batch/many-0700.txt",
+ "object-tests/batch/many-0701.txt",
+ "object-tests/batch/many-0702.txt",
+ "object-tests/batch/many-0703.txt",
+ "object-tests/batch/many-0704.txt",
+ "object-tests/batch/many-0705.txt",
+ "object-tests/batch/many-0706.txt",
+ "object-tests/batch/many-0707.txt",
+ "object-tests/batch/many-0708.txt",
+ "object-tests/batch/many-0709.txt",
+ "object-tests/batch/many-0710.txt",
+ "object-tests/batch/many-0711.txt",
+ "object-tests/batch/many-0712.txt",
+ "object-tests/batch/many-0713.txt",
+ "object-tests/batch/many-0714.txt",
+ "object-tests/batch/many-0715.txt",
+ "object-tests/batch/many-0716.txt",
+ "object-tests/batch/many-0717.txt",
+ "object-tests/batch/many-0718.txt",
+ "object-tests/batch/many-0719.txt",
+ "object-tests/batch/many-0720.txt",
+ "object-tests/batch/many-0721.txt",
+ "object-tests/batch/many-0722.txt",
+ "object-tests/batch/many-0723.txt",
+ "object-tests/batch/many-0724.txt",
+ "object-tests/batch/many-0725.txt",
+ "object-tests/batch/many-0726.txt",
+ "object-tests/batch/many-0727.txt",
+ "object-tests/batch/many-0728.txt",
+ "object-tests/batch/many-0729.txt",
+ "object-tests/batch/many-0730.txt",
+ "object-tests/batch/many-0731.txt",
+ "object-tests/batch/many-0732.txt",
+ "object-tests/batch/many-0733.txt",
+ "object-tests/batch/many-0734.txt",
+ "object-tests/batch/many-0735.txt",
+ "object-tests/batch/many-0736.txt",
+ "object-tests/batch/many-0737.txt",
+ "object-tests/batch/many-0738.txt",
+ "object-tests/batch/many-0739.txt",
+ "object-tests/batch/many-0740.txt",
+ "object-tests/batch/many-0741.txt",
+ "object-tests/batch/many-0742.txt",
+ "object-tests/batch/many-0743.txt",
+ "object-tests/batch/many-0744.txt",
+ "object-tests/batch/many-0745.txt",
+ "object-tests/batch/many-0746.txt",
+ "object-tests/batch/many-0747.txt",
+ "object-tests/batch/many-0748.txt",
+ "object-tests/batch/many-0749.txt",
+ "object-tests/batch/many-0750.txt",
+ "object-tests/batch/many-0751.txt",
+ "object-tests/batch/many-0752.txt",
+ "object-tests/batch/many-0753.txt",
+ "object-tests/batch/many-0754.txt",
+ "object-tests/batch/many-0755.txt",
+ "object-tests/batch/many-0756.txt",
+ "object-tests/batch/many-0757.txt",
+ "object-tests/batch/many-0758.txt",
+ "object-tests/batch/many-0759.txt",
+ "object-tests/batch/many-0760.txt",
+ "object-tests/batch/many-0761.txt",
+ "object-tests/batch/many-0762.txt",
+ "object-tests/batch/many-0763.txt",
+ "object-tests/batch/many-0764.txt",
+ "object-tests/batch/many-0765.txt",
+ "object-tests/batch/many-0766.txt",
+ "object-tests/batch/many-0767.txt",
+ "object-tests/batch/many-0768.txt",
+ "object-tests/batch/many-0769.txt",
+ "object-tests/batch/many-0770.txt",
+ "object-tests/batch/many-0771.txt",
+ "object-tests/batch/many-0772.txt",
+ "object-tests/batch/many-0773.txt",
+ "object-tests/batch/many-0774.txt",
+ "object-tests/batch/many-0775.txt",
+ "object-tests/batch/many-0776.txt",
+ "object-tests/batch/many-0777.txt",
+ "object-tests/batch/many-0778.txt",
+ "object-tests/batch/many-0779.txt",
+ "object-tests/batch/many-0780.txt",
+ "object-tests/batch/many-0781.txt",
+ "object-tests/batch/many-0782.txt",
+ "object-tests/batch/many-0783.txt",
+ "object-tests/batch/many-0784.txt",
+ "object-tests/batch/many-0785.txt",
+ "object-tests/batch/many-0786.txt",
+ "object-tests/batch/many-0787.txt",
+ "object-tests/batch/many-0788.txt",
+ "object-tests/batch/many-0789.txt",
+ "object-tests/batch/many-0790.txt",
+ "object-tests/batch/many-0791.txt",
+ "object-tests/batch/many-0792.txt",
+ "object-tests/batch/many-0793.txt",
+ "object-tests/batch/many-0794.txt",
+ "object-tests/batch/many-0795.txt",
+ "object-tests/batch/many-0796.txt",
+ "object-tests/batch/many-0797.txt",
+ "object-tests/batch/many-0798.txt",
+ "object-tests/batch/many-0799.txt",
+ "object-tests/batch/many-0800.txt",
+ "object-tests/batch/many-0801.txt",
+ "object-tests/batch/many-0802.txt",
+ "object-tests/batch/many-0803.txt",
+ "object-tests/batch/many-0804.txt",
+ "object-tests/batch/many-0805.txt",
+ "object-tests/batch/many-0806.txt",
+ "object-tests/batch/many-0807.txt",
+ "object-tests/batch/many-0808.txt",
+ "object-tests/batch/many-0809.txt",
+ "object-tests/batch/many-0810.txt",
+ "object-tests/batch/many-0811.txt",
+ "object-tests/batch/many-0812.txt",
+ "object-tests/batch/many-0813.txt",
+ "object-tests/batch/many-0814.txt",
+ "object-tests/batch/many-0815.txt",
+ "object-tests/batch/many-0816.txt",
+ "object-tests/batch/many-0817.txt",
+ "object-tests/batch/many-0818.txt",
+ "object-tests/batch/many-0819.txt",
+ "object-tests/batch/many-0820.txt",
+ "object-tests/batch/many-0821.txt",
+ "object-tests/batch/many-0822.txt",
+ "object-tests/batch/many-0823.txt",
+ "object-tests/batch/many-0824.txt",
+ "object-tests/batch/many-0825.txt",
+ "object-tests/batch/many-0826.txt",
+ "object-tests/batch/many-0827.txt",
+ "object-tests/batch/many-0828.txt",
+ "object-tests/batch/many-0829.txt",
+ "object-tests/batch/many-0830.txt",
+ "object-tests/batch/many-0831.txt",
+ "object-tests/batch/many-0832.txt",
+ "object-tests/batch/many-0833.txt",
+ "object-tests/batch/many-0834.txt",
+ "object-tests/batch/many-0835.txt",
+ "object-tests/batch/many-0836.txt",
+ "object-tests/batch/many-0837.txt",
+ "object-tests/batch/many-0838.txt",
+ "object-tests/batch/many-0839.txt",
+ "object-tests/batch/many-0840.txt",
+ "object-tests/batch/many-0841.txt",
+ "object-tests/batch/many-0842.txt",
+ "object-tests/batch/many-0843.txt",
+ "object-tests/batch/many-0844.txt",
+ "object-tests/batch/many-0845.txt",
+ "object-tests/batch/many-0846.txt",
+ "object-tests/batch/many-0847.txt",
+ "object-tests/batch/many-0848.txt",
+ "object-tests/batch/many-0849.txt",
+ "object-tests/batch/many-0850.txt",
+ "object-tests/batch/many-0851.txt",
+ "object-tests/batch/many-0852.txt",
+ "object-tests/batch/many-0853.txt",
+ "object-tests/batch/many-0854.txt",
+ "object-tests/batch/many-0855.txt",
+ "object-tests/batch/many-0856.txt",
+ "object-tests/batch/many-0857.txt",
+ "object-tests/batch/many-0858.txt",
+ "object-tests/batch/many-0859.txt",
+ "object-tests/batch/many-0860.txt",
+ "object-tests/batch/many-0861.txt",
+ "object-tests/batch/many-0862.txt",
+ "object-tests/batch/many-0863.txt",
+ "object-tests/batch/many-0864.txt",
+ "object-tests/batch/many-0865.txt",
+ "object-tests/batch/many-0866.txt",
+ "object-tests/batch/many-0867.txt",
+ "object-tests/batch/many-0868.txt",
+ "object-tests/batch/many-0869.txt",
+ "object-tests/batch/many-0870.txt",
+ "object-tests/batch/many-0871.txt",
+ "object-tests/batch/many-0872.txt",
+ "object-tests/batch/many-0873.txt",
+ "object-tests/batch/many-0874.txt",
+ "object-tests/batch/many-0875.txt",
+ "object-tests/batch/many-0876.txt",
+ "object-tests/batch/many-0877.txt",
+ "object-tests/batch/many-0878.txt",
+ "object-tests/batch/many-0879.txt",
+ "object-tests/batch/many-0880.txt",
+ "object-tests/batch/many-0881.txt",
+ "object-tests/batch/many-0882.txt",
+ "object-tests/batch/many-0883.txt",
+ "object-tests/batch/many-0884.txt",
+ "object-tests/batch/many-0885.txt",
+ "object-tests/batch/many-0886.txt",
+ "object-tests/batch/many-0887.txt",
+ "object-tests/batch/many-0888.txt",
+ "object-tests/batch/many-0889.txt",
+ "object-tests/batch/many-0890.txt",
+ "object-tests/batch/many-0891.txt",
+ "object-tests/batch/many-0892.txt",
+ "object-tests/batch/many-0893.txt",
+ "object-tests/batch/many-0894.txt",
+ "object-tests/batch/many-0895.txt",
+ "object-tests/batch/many-0896.txt",
+ "object-tests/batch/many-0897.txt",
+ "object-tests/batch/many-0898.txt",
+ "object-tests/batch/many-0899.txt",
+ "object-tests/batch/many-0900.txt",
+ "object-tests/batch/many-0901.txt",
+ "object-tests/batch/many-0902.txt",
+ "object-tests/batch/many-0903.txt",
+ "object-tests/batch/many-0904.txt",
+ "object-tests/batch/many-0905.txt",
+ "object-tests/batch/many-0906.txt",
+ "object-tests/batch/many-0907.txt",
+ "object-tests/batch/many-0908.txt",
+ "object-tests/batch/many-0909.txt",
+ "object-tests/batch/many-0910.txt",
+ "object-tests/batch/many-0911.txt",
+ "object-tests/batch/many-0912.txt",
+ "object-tests/batch/many-0913.txt",
+ "object-tests/batch/many-0914.txt",
+ "object-tests/batch/many-0915.txt",
+ "object-tests/batch/many-0916.txt",
+ "object-tests/batch/many-0917.txt",
+ "object-tests/batch/many-0918.txt",
+ "object-tests/batch/many-0919.txt",
+ "object-tests/batch/many-0920.txt",
+ "object-tests/batch/many-0921.txt",
+ "object-tests/batch/many-0922.txt",
+ "object-tests/batch/many-0923.txt",
+ "object-tests/batch/many-0924.txt",
+ "object-tests/batch/many-0925.txt",
+ "object-tests/batch/many-0926.txt",
+ "object-tests/batch/many-0927.txt",
+ "object-tests/batch/many-0928.txt",
+ "object-tests/batch/many-0929.txt",
+ "object-tests/batch/many-0930.txt",
+ "object-tests/batch/many-0931.txt",
+ "object-tests/batch/many-0932.txt",
+ "object-tests/batch/many-0933.txt",
+ "object-tests/batch/many-0934.txt",
+ "object-tests/batch/many-0935.txt",
+ "object-tests/batch/many-0936.txt",
+ "object-tests/batch/many-0937.txt",
+ "object-tests/batch/many-0938.txt",
+ "object-tests/batch/many-0939.txt",
+ "object-tests/batch/many-0940.txt",
+ "object-tests/batch/many-0941.txt",
+ "object-tests/batch/many-0942.txt",
+ "object-tests/batch/many-0943.txt",
+ "object-tests/batch/many-0944.txt",
+ "object-tests/batch/many-0945.txt",
+ "object-tests/batch/many-0946.txt",
+ "object-tests/batch/many-0947.txt",
+ "object-tests/batch/many-0948.txt",
+ "object-tests/batch/many-0949.txt",
+ "object-tests/batch/many-0950.txt",
+ "object-tests/batch/many-0951.txt",
+ "object-tests/batch/many-0952.txt",
+ "object-tests/batch/many-0953.txt",
+ "object-tests/batch/many-0954.txt",
+ "object-tests/batch/many-0955.txt",
+ "object-tests/batch/many-0956.txt",
+ "object-tests/batch/many-0957.txt",
+ "object-tests/batch/many-0958.txt",
+ "object-tests/batch/many-0959.txt",
+ "object-tests/batch/many-0960.txt",
+ "object-tests/batch/many-0961.txt",
+ "object-tests/batch/many-0962.txt",
+ "object-tests/batch/many-0963.txt",
+ "object-tests/batch/many-0964.txt",
+ "object-tests/batch/many-0965.txt",
+ "object-tests/batch/many-0966.txt",
+ "object-tests/batch/many-0967.txt",
+ "object-tests/batch/many-0968.txt",
+ "object-tests/batch/many-0969.txt",
+ "object-tests/batch/many-0970.txt",
+ "object-tests/batch/many-0971.txt",
+ "object-tests/batch/many-0972.txt",
+ "object-tests/batch/many-0973.txt",
+ "object-tests/batch/many-0974.txt",
+ "object-tests/batch/many-0975.txt",
+ "object-tests/batch/many-0976.txt",
+ "object-tests/batch/many-0977.txt",
+ "object-tests/batch/many-0978.txt",
+ "object-tests/batch/many-0979.txt",
+ "object-tests/batch/many-0980.txt",
+ "object-tests/batch/many-0981.txt",
+ "object-tests/batch/many-0982.txt",
+ "object-tests/batch/many-0983.txt",
+ "object-tests/batch/many-0984.txt",
+ "object-tests/batch/many-0985.txt",
+ "object-tests/batch/many-0986.txt",
+ "object-tests/batch/many-0987.txt",
+ "object-tests/batch/many-0988.txt",
+ "object-tests/batch/many-0989.txt",
+ "object-tests/batch/many-0990.txt",
+ "object-tests/batch/many-0991.txt",
+ "object-tests/batch/many-0992.txt",
+ "object-tests/batch/many-0993.txt",
+ "object-tests/batch/many-0994.txt",
+ "object-tests/batch/many-0995.txt",
+ "object-tests/batch/many-0996.txt",
+ "object-tests/batch/many-0997.txt",
+ "object-tests/batch/many-0998.txt",
+ "object-tests/batch/many-0999.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -66087,7 +99829,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -66095,43 +99837,60 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/append/object.log"
+ "value": "/fixture"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "c2Vjb25k"
+ "is": "xml",
+ "value": ""
}
},
{
- "at": "/query/comp",
+ "at": "/query/delete",
"optional": false,
"rule": {
"is": "equal",
- "value": "appendblock"
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc64nvme",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-blob-append-offset": "5",
- "x-ms-blob-committed-block-count": "2",
- "x-ms-request-server-encrypted": "true"
+ }
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "\nobject-tests/batch/many-0000.txtobject-tests/batch/many-0001.txtobject-tests/batch/many-0002.txtobject-tests/batch/many-0003.txtobject-tests/batch/many-0004.txtobject-tests/batch/many-0005.txtobject-tests/batch/many-0006.txtobject-tests/batch/many-0007.txtobject-tests/batch/many-0008.txtobject-tests/batch/many-0009.txtobject-tests/batch/many-0010.txtobject-tests/batch/many-0011.txtobject-tests/batch/many-0012.txtobject-tests/batch/many-0013.txtobject-tests/batch/many-0014.txtobject-tests/batch/many-0015.txtobject-tests/batch/many-0016.txtobject-tests/batch/many-0017.txtobject-tests/batch/many-0018.txtobject-tests/batch/many-0019.txtobject-tests/batch/many-0020.txtobject-tests/batch/many-0021.txtobject-tests/batch/many-0022.txtobject-tests/batch/many-0023.txtobject-tests/batch/many-0024.txtobject-tests/batch/many-0025.txtobject-tests/batch/many-0026.txtobject-tests/batch/many-0027.txtobject-tests/batch/many-0028.txtobject-tests/batch/many-0029.txtobject-tests/batch/many-0030.txtobject-tests/batch/many-0031.txtobject-tests/batch/many-0032.txtobject-tests/batch/many-0033.txtobject-tests/batch/many-0034.txtobject-tests/batch/many-0035.txtobject-tests/batch/many-0036.txtobject-tests/batch/many-0037.txtobject-tests/batch/many-0038.txtobject-tests/batch/many-0039.txtobject-tests/batch/many-0040.txtobject-tests/batch/many-0041.txtobject-tests/batch/many-0042.txtobject-tests/batch/many-0043.txtobject-tests/batch/many-0044.txtobject-tests/batch/many-0045.txtobject-tests/batch/many-0046.txtobject-tests/batch/many-0047.txtobject-tests/batch/many-0048.txtobject-tests/batch/many-0049.txtobject-tests/batch/many-0050.txtobject-tests/batch/many-0051.txtobject-tests/batch/many-0052.txtobject-tests/batch/many-0053.txtobject-tests/batch/many-0054.txtobject-tests/batch/many-0055.txtobject-tests/batch/many-0056.txtobject-tests/batch/many-0057.txtobject-tests/batch/many-0058.txtobject-tests/batch/many-0059.txtobject-tests/batch/many-0060.txtobject-tests/batch/many-0061.txtobject-tests/batch/many-0062.txtobject-tests/batch/many-0063.txtobject-tests/batch/many-0064.txtobject-tests/batch/many-0065.txtobject-tests/batch/many-0066.txtobject-tests/batch/many-0067.txtobject-tests/batch/many-0068.txtobject-tests/batch/many-0069.txtobject-tests/batch/many-0070.txtobject-tests/batch/many-0071.txtobject-tests/batch/many-0072.txtobject-tests/batch/many-0073.txtobject-tests/batch/many-0074.txtobject-tests/batch/many-0075.txtobject-tests/batch/many-0076.txtobject-tests/batch/many-0077.txtobject-tests/batch/many-0078.txtobject-tests/batch/many-0079.txtobject-tests/batch/many-0080.txtobject-tests/batch/many-0081.txtobject-tests/batch/many-0082.txtobject-tests/batch/many-0083.txtobject-tests/batch/many-0084.txtobject-tests/batch/many-0085.txtobject-tests/batch/many-0086.txtobject-tests/batch/many-0087.txtobject-tests/batch/many-0088.txtobject-tests/batch/many-0089.txtobject-tests/batch/many-0090.txtobject-tests/batch/many-0091.txtobject-tests/batch/many-0092.txtobject-tests/batch/many-0093.txtobject-tests/batch/many-0094.txtobject-tests/batch/many-0095.txtobject-tests/batch/many-0096.txtobject-tests/batch/many-0097.txtobject-tests/batch/many-0098.txtobject-tests/batch/many-0099.txtobject-tests/batch/many-0100.txtobject-tests/batch/many-0101.txtobject-tests/batch/many-0102.txtobject-tests/batch/many-0103.txtobject-tests/batch/many-0104.txtobject-tests/batch/many-0105.txtobject-tests/batch/many-0106.txtobject-tests/batch/many-0107.txtobject-tests/batch/many-0108.txtobject-tests/batch/many-0109.txtobject-tests/batch/many-0110.txtobject-tests/batch/many-0111.txtobject-tests/batch/many-0112.txtobject-tests/batch/many-0113.txtobject-tests/batch/many-0114.txtobject-tests/batch/many-0115.txtobject-tests/batch/many-0116.txtobject-tests/batch/many-0117.txtobject-tests/batch/many-0118.txtobject-tests/batch/many-0119.txtobject-tests/batch/many-0120.txtobject-tests/batch/many-0121.txtobject-tests/batch/many-0122.txtobject-tests/batch/many-0123.txtobject-tests/batch/many-0124.txtobject-tests/batch/many-0125.txtobject-tests/batch/many-0126.txtobject-tests/batch/many-0127.txtobject-tests/batch/many-0128.txtobject-tests/batch/many-0129.txtobject-tests/batch/many-0130.txtobject-tests/batch/many-0131.txtobject-tests/batch/many-0132.txtobject-tests/batch/many-0133.txtobject-tests/batch/many-0134.txtobject-tests/batch/many-0135.txtobject-tests/batch/many-0136.txtobject-tests/batch/many-0137.txtobject-tests/batch/many-0138.txtobject-tests/batch/many-0139.txtobject-tests/batch/many-0140.txtobject-tests/batch/many-0141.txtobject-tests/batch/many-0142.txtobject-tests/batch/many-0143.txtobject-tests/batch/many-0144.txtobject-tests/batch/many-0145.txtobject-tests/batch/many-0146.txtobject-tests/batch/many-0147.txtobject-tests/batch/many-0148.txtobject-tests/batch/many-0149.txtobject-tests/batch/many-0150.txtobject-tests/batch/many-0151.txtobject-tests/batch/many-0152.txtobject-tests/batch/many-0153.txtobject-tests/batch/many-0154.txtobject-tests/batch/many-0155.txtobject-tests/batch/many-0156.txtobject-tests/batch/many-0157.txtobject-tests/batch/many-0158.txtobject-tests/batch/many-0159.txtobject-tests/batch/many-0160.txtobject-tests/batch/many-0161.txtobject-tests/batch/many-0162.txtobject-tests/batch/many-0163.txtobject-tests/batch/many-0164.txtobject-tests/batch/many-0165.txtobject-tests/batch/many-0166.txtobject-tests/batch/many-0167.txtobject-tests/batch/many-0168.txtobject-tests/batch/many-0169.txtobject-tests/batch/many-0170.txtobject-tests/batch/many-0171.txtobject-tests/batch/many-0172.txtobject-tests/batch/many-0173.txtobject-tests/batch/many-0174.txtobject-tests/batch/many-0175.txtobject-tests/batch/many-0176.txtobject-tests/batch/many-0177.txtobject-tests/batch/many-0178.txtobject-tests/batch/many-0179.txtobject-tests/batch/many-0180.txtobject-tests/batch/many-0181.txtobject-tests/batch/many-0182.txtobject-tests/batch/many-0183.txtobject-tests/batch/many-0184.txtobject-tests/batch/many-0185.txtobject-tests/batch/many-0186.txtobject-tests/batch/many-0187.txtobject-tests/batch/many-0188.txtobject-tests/batch/many-0189.txtobject-tests/batch/many-0190.txtobject-tests/batch/many-0191.txtobject-tests/batch/many-0192.txtobject-tests/batch/many-0193.txtobject-tests/batch/many-0194.txtobject-tests/batch/many-0195.txtobject-tests/batch/many-0196.txtobject-tests/batch/many-0197.txtobject-tests/batch/many-0198.txtobject-tests/batch/many-0199.txtobject-tests/batch/many-0200.txtobject-tests/batch/many-0201.txtobject-tests/batch/many-0202.txtobject-tests/batch/many-0203.txtobject-tests/batch/many-0204.txtobject-tests/batch/many-0205.txtobject-tests/batch/many-0206.txtobject-tests/batch/many-0207.txtobject-tests/batch/many-0208.txtobject-tests/batch/many-0209.txtobject-tests/batch/many-0210.txtobject-tests/batch/many-0211.txtobject-tests/batch/many-0212.txtobject-tests/batch/many-0213.txtobject-tests/batch/many-0214.txtobject-tests/batch/many-0215.txtobject-tests/batch/many-0216.txtobject-tests/batch/many-0217.txtobject-tests/batch/many-0218.txtobject-tests/batch/many-0219.txtobject-tests/batch/many-0220.txtobject-tests/batch/many-0221.txtobject-tests/batch/many-0222.txtobject-tests/batch/many-0223.txtobject-tests/batch/many-0224.txtobject-tests/batch/many-0225.txtobject-tests/batch/many-0226.txtobject-tests/batch/many-0227.txtobject-tests/batch/many-0228.txtobject-tests/batch/many-0229.txtobject-tests/batch/many-0230.txtobject-tests/batch/many-0231.txtobject-tests/batch/many-0232.txtobject-tests/batch/many-0233.txtobject-tests/batch/many-0234.txtobject-tests/batch/many-0235.txtobject-tests/batch/many-0236.txtobject-tests/batch/many-0237.txtobject-tests/batch/many-0238.txtobject-tests/batch/many-0239.txtobject-tests/batch/many-0240.txtobject-tests/batch/many-0241.txtobject-tests/batch/many-0242.txtobject-tests/batch/many-0243.txtobject-tests/batch/many-0244.txtobject-tests/batch/many-0245.txtobject-tests/batch/many-0246.txtobject-tests/batch/many-0247.txtobject-tests/batch/many-0248.txtobject-tests/batch/many-0249.txtobject-tests/batch/many-0250.txtobject-tests/batch/many-0251.txtobject-tests/batch/many-0252.txtobject-tests/batch/many-0253.txtobject-tests/batch/many-0254.txtobject-tests/batch/many-0255.txtobject-tests/batch/many-0256.txtobject-tests/batch/many-0257.txtobject-tests/batch/many-0258.txtobject-tests/batch/many-0259.txtobject-tests/batch/many-0260.txtobject-tests/batch/many-0261.txtobject-tests/batch/many-0262.txtobject-tests/batch/many-0263.txtobject-tests/batch/many-0264.txtobject-tests/batch/many-0265.txtobject-tests/batch/many-0266.txtobject-tests/batch/many-0267.txtobject-tests/batch/many-0268.txtobject-tests/batch/many-0269.txtobject-tests/batch/many-0270.txtobject-tests/batch/many-0271.txtobject-tests/batch/many-0272.txtobject-tests/batch/many-0273.txtobject-tests/batch/many-0274.txtobject-tests/batch/many-0275.txtobject-tests/batch/many-0276.txtobject-tests/batch/many-0277.txtobject-tests/batch/many-0278.txtobject-tests/batch/many-0279.txtobject-tests/batch/many-0280.txtobject-tests/batch/many-0281.txtobject-tests/batch/many-0282.txtobject-tests/batch/many-0283.txtobject-tests/batch/many-0284.txtobject-tests/batch/many-0285.txtobject-tests/batch/many-0286.txtobject-tests/batch/many-0287.txtobject-tests/batch/many-0288.txtobject-tests/batch/many-0289.txtobject-tests/batch/many-0290.txtobject-tests/batch/many-0291.txtobject-tests/batch/many-0292.txtobject-tests/batch/many-0293.txtobject-tests/batch/many-0294.txtobject-tests/batch/many-0295.txtobject-tests/batch/many-0296.txtobject-tests/batch/many-0297.txtobject-tests/batch/many-0298.txtobject-tests/batch/many-0299.txtobject-tests/batch/many-0300.txtobject-tests/batch/many-0301.txtobject-tests/batch/many-0302.txtobject-tests/batch/many-0303.txtobject-tests/batch/many-0304.txtobject-tests/batch/many-0305.txtobject-tests/batch/many-0306.txtobject-tests/batch/many-0307.txtobject-tests/batch/many-0308.txtobject-tests/batch/many-0309.txtobject-tests/batch/many-0310.txtobject-tests/batch/many-0311.txtobject-tests/batch/many-0312.txtobject-tests/batch/many-0313.txtobject-tests/batch/many-0314.txtobject-tests/batch/many-0315.txtobject-tests/batch/many-0316.txtobject-tests/batch/many-0317.txtobject-tests/batch/many-0318.txtobject-tests/batch/many-0319.txtobject-tests/batch/many-0320.txtobject-tests/batch/many-0321.txtobject-tests/batch/many-0322.txtobject-tests/batch/many-0323.txtobject-tests/batch/many-0324.txtobject-tests/batch/many-0325.txtobject-tests/batch/many-0326.txtobject-tests/batch/many-0327.txtobject-tests/batch/many-0328.txtobject-tests/batch/many-0329.txtobject-tests/batch/many-0330.txtobject-tests/batch/many-0331.txtobject-tests/batch/many-0332.txtobject-tests/batch/many-0333.txtobject-tests/batch/many-0334.txtobject-tests/batch/many-0335.txtobject-tests/batch/many-0336.txtobject-tests/batch/many-0337.txtobject-tests/batch/many-0338.txtobject-tests/batch/many-0339.txtobject-tests/batch/many-0340.txtobject-tests/batch/many-0341.txtobject-tests/batch/many-0342.txtobject-tests/batch/many-0343.txtobject-tests/batch/many-0344.txtobject-tests/batch/many-0345.txtobject-tests/batch/many-0346.txtobject-tests/batch/many-0347.txtobject-tests/batch/many-0348.txtobject-tests/batch/many-0349.txtobject-tests/batch/many-0350.txtobject-tests/batch/many-0351.txtobject-tests/batch/many-0352.txtobject-tests/batch/many-0353.txtobject-tests/batch/many-0354.txtobject-tests/batch/many-0355.txtobject-tests/batch/many-0356.txtobject-tests/batch/many-0357.txtobject-tests/batch/many-0358.txtobject-tests/batch/many-0359.txtobject-tests/batch/many-0360.txtobject-tests/batch/many-0361.txtobject-tests/batch/many-0362.txtobject-tests/batch/many-0363.txtobject-tests/batch/many-0364.txtobject-tests/batch/many-0365.txtobject-tests/batch/many-0366.txtobject-tests/batch/many-0367.txtobject-tests/batch/many-0368.txtobject-tests/batch/many-0369.txtobject-tests/batch/many-0370.txtobject-tests/batch/many-0371.txtobject-tests/batch/many-0372.txtobject-tests/batch/many-0373.txtobject-tests/batch/many-0374.txtobject-tests/batch/many-0375.txtobject-tests/batch/many-0376.txtobject-tests/batch/many-0377.txtobject-tests/batch/many-0378.txtobject-tests/batch/many-0379.txtobject-tests/batch/many-0380.txtobject-tests/batch/many-0381.txtobject-tests/batch/many-0382.txtobject-tests/batch/many-0383.txtobject-tests/batch/many-0384.txtobject-tests/batch/many-0385.txtobject-tests/batch/many-0386.txtobject-tests/batch/many-0387.txtobject-tests/batch/many-0388.txtobject-tests/batch/many-0389.txtobject-tests/batch/many-0390.txtobject-tests/batch/many-0391.txtobject-tests/batch/many-0392.txtobject-tests/batch/many-0393.txtobject-tests/batch/many-0394.txtobject-tests/batch/many-0395.txtobject-tests/batch/many-0396.txtobject-tests/batch/many-0397.txtobject-tests/batch/many-0398.txtobject-tests/batch/many-0399.txtobject-tests/batch/many-0400.txtobject-tests/batch/many-0401.txtobject-tests/batch/many-0402.txtobject-tests/batch/many-0403.txtobject-tests/batch/many-0404.txtobject-tests/batch/many-0405.txtobject-tests/batch/many-0406.txtobject-tests/batch/many-0407.txtobject-tests/batch/many-0408.txtobject-tests/batch/many-0409.txtobject-tests/batch/many-0410.txtobject-tests/batch/many-0411.txtobject-tests/batch/many-0412.txtobject-tests/batch/many-0413.txtobject-tests/batch/many-0414.txtobject-tests/batch/many-0415.txtobject-tests/batch/many-0416.txtobject-tests/batch/many-0417.txtobject-tests/batch/many-0418.txtobject-tests/batch/many-0419.txtobject-tests/batch/many-0420.txtobject-tests/batch/many-0421.txtobject-tests/batch/many-0422.txtobject-tests/batch/many-0423.txtobject-tests/batch/many-0424.txtobject-tests/batch/many-0425.txtobject-tests/batch/many-0426.txtobject-tests/batch/many-0427.txtobject-tests/batch/many-0428.txtobject-tests/batch/many-0429.txtobject-tests/batch/many-0430.txtobject-tests/batch/many-0431.txtobject-tests/batch/many-0432.txtobject-tests/batch/many-0433.txtobject-tests/batch/many-0434.txtobject-tests/batch/many-0435.txtobject-tests/batch/many-0436.txtobject-tests/batch/many-0437.txtobject-tests/batch/many-0438.txtobject-tests/batch/many-0439.txtobject-tests/batch/many-0440.txtobject-tests/batch/many-0441.txtobject-tests/batch/many-0442.txtobject-tests/batch/many-0443.txtobject-tests/batch/many-0444.txtobject-tests/batch/many-0445.txtobject-tests/batch/many-0446.txtobject-tests/batch/many-0447.txtobject-tests/batch/many-0448.txtobject-tests/batch/many-0449.txtobject-tests/batch/many-0450.txtobject-tests/batch/many-0451.txtobject-tests/batch/many-0452.txtobject-tests/batch/many-0453.txtobject-tests/batch/many-0454.txtobject-tests/batch/many-0455.txtobject-tests/batch/many-0456.txtobject-tests/batch/many-0457.txtobject-tests/batch/many-0458.txtobject-tests/batch/many-0459.txtobject-tests/batch/many-0460.txtobject-tests/batch/many-0461.txtobject-tests/batch/many-0462.txtobject-tests/batch/many-0463.txtobject-tests/batch/many-0464.txtobject-tests/batch/many-0465.txtobject-tests/batch/many-0466.txtobject-tests/batch/many-0467.txtobject-tests/batch/many-0468.txtobject-tests/batch/many-0469.txtobject-tests/batch/many-0470.txtobject-tests/batch/many-0471.txtobject-tests/batch/many-0472.txtobject-tests/batch/many-0473.txtobject-tests/batch/many-0474.txtobject-tests/batch/many-0475.txtobject-tests/batch/many-0476.txtobject-tests/batch/many-0477.txtobject-tests/batch/many-0478.txtobject-tests/batch/many-0479.txtobject-tests/batch/many-0480.txtobject-tests/batch/many-0481.txtobject-tests/batch/many-0482.txtobject-tests/batch/many-0483.txtobject-tests/batch/many-0484.txtobject-tests/batch/many-0485.txtobject-tests/batch/many-0486.txtobject-tests/batch/many-0487.txtobject-tests/batch/many-0488.txtobject-tests/batch/many-0489.txtobject-tests/batch/many-0490.txtobject-tests/batch/many-0491.txtobject-tests/batch/many-0492.txtobject-tests/batch/many-0493.txtobject-tests/batch/many-0494.txtobject-tests/batch/many-0495.txtobject-tests/batch/many-0496.txtobject-tests/batch/many-0497.txtobject-tests/batch/many-0498.txtobject-tests/batch/many-0499.txtobject-tests/batch/many-0500.txtobject-tests/batch/many-0501.txtobject-tests/batch/many-0502.txtobject-tests/batch/many-0503.txtobject-tests/batch/many-0504.txtobject-tests/batch/many-0505.txtobject-tests/batch/many-0506.txtobject-tests/batch/many-0507.txtobject-tests/batch/many-0508.txtobject-tests/batch/many-0509.txtobject-tests/batch/many-0510.txtobject-tests/batch/many-0511.txtobject-tests/batch/many-0512.txtobject-tests/batch/many-0513.txtobject-tests/batch/many-0514.txtobject-tests/batch/many-0515.txtobject-tests/batch/many-0516.txtobject-tests/batch/many-0517.txtobject-tests/batch/many-0518.txtobject-tests/batch/many-0519.txtobject-tests/batch/many-0520.txtobject-tests/batch/many-0521.txtobject-tests/batch/many-0522.txtobject-tests/batch/many-0523.txtobject-tests/batch/many-0524.txtobject-tests/batch/many-0525.txtobject-tests/batch/many-0526.txtobject-tests/batch/many-0527.txtobject-tests/batch/many-0528.txtobject-tests/batch/many-0529.txtobject-tests/batch/many-0530.txtobject-tests/batch/many-0531.txtobject-tests/batch/many-0532.txtobject-tests/batch/many-0533.txtobject-tests/batch/many-0534.txtobject-tests/batch/many-0535.txtobject-tests/batch/many-0536.txtobject-tests/batch/many-0537.txtobject-tests/batch/many-0538.txtobject-tests/batch/many-0539.txtobject-tests/batch/many-0540.txtobject-tests/batch/many-0541.txtobject-tests/batch/many-0542.txtobject-tests/batch/many-0543.txtobject-tests/batch/many-0544.txtobject-tests/batch/many-0545.txtobject-tests/batch/many-0546.txtobject-tests/batch/many-0547.txtobject-tests/batch/many-0548.txtobject-tests/batch/many-0549.txtobject-tests/batch/many-0550.txtobject-tests/batch/many-0551.txtobject-tests/batch/many-0552.txtobject-tests/batch/many-0553.txtobject-tests/batch/many-0554.txtobject-tests/batch/many-0555.txtobject-tests/batch/many-0556.txtobject-tests/batch/many-0557.txtobject-tests/batch/many-0558.txtobject-tests/batch/many-0559.txtobject-tests/batch/many-0560.txtobject-tests/batch/many-0561.txtobject-tests/batch/many-0562.txtobject-tests/batch/many-0563.txtobject-tests/batch/many-0564.txtobject-tests/batch/many-0565.txtobject-tests/batch/many-0566.txtobject-tests/batch/many-0567.txtobject-tests/batch/many-0568.txtobject-tests/batch/many-0569.txtobject-tests/batch/many-0570.txtobject-tests/batch/many-0571.txtobject-tests/batch/many-0572.txtobject-tests/batch/many-0573.txtobject-tests/batch/many-0574.txtobject-tests/batch/many-0575.txtobject-tests/batch/many-0576.txtobject-tests/batch/many-0577.txtobject-tests/batch/many-0578.txtobject-tests/batch/many-0579.txtobject-tests/batch/many-0580.txtobject-tests/batch/many-0581.txtobject-tests/batch/many-0582.txtobject-tests/batch/many-0583.txtobject-tests/batch/many-0584.txtobject-tests/batch/many-0585.txtobject-tests/batch/many-0586.txtobject-tests/batch/many-0587.txtobject-tests/batch/many-0588.txtobject-tests/batch/many-0589.txtobject-tests/batch/many-0590.txtobject-tests/batch/many-0591.txtobject-tests/batch/many-0592.txtobject-tests/batch/many-0593.txtobject-tests/batch/many-0594.txtobject-tests/batch/many-0595.txtobject-tests/batch/many-0596.txtobject-tests/batch/many-0597.txtobject-tests/batch/many-0598.txtobject-tests/batch/many-0599.txtobject-tests/batch/many-0600.txtobject-tests/batch/many-0601.txtobject-tests/batch/many-0602.txtobject-tests/batch/many-0603.txtobject-tests/batch/many-0604.txtobject-tests/batch/many-0605.txtobject-tests/batch/many-0606.txtobject-tests/batch/many-0607.txtobject-tests/batch/many-0608.txtobject-tests/batch/many-0609.txtobject-tests/batch/many-0610.txtobject-tests/batch/many-0611.txtobject-tests/batch/many-0612.txtobject-tests/batch/many-0613.txtobject-tests/batch/many-0614.txtobject-tests/batch/many-0615.txtobject-tests/batch/many-0616.txtobject-tests/batch/many-0617.txtobject-tests/batch/many-0618.txtobject-tests/batch/many-0619.txtobject-tests/batch/many-0620.txtobject-tests/batch/many-0621.txtobject-tests/batch/many-0622.txtobject-tests/batch/many-0623.txtobject-tests/batch/many-0624.txtobject-tests/batch/many-0625.txtobject-tests/batch/many-0626.txtobject-tests/batch/many-0627.txtobject-tests/batch/many-0628.txtobject-tests/batch/many-0629.txtobject-tests/batch/many-0630.txtobject-tests/batch/many-0631.txtobject-tests/batch/many-0632.txtobject-tests/batch/many-0633.txtobject-tests/batch/many-0634.txtobject-tests/batch/many-0635.txtobject-tests/batch/many-0636.txtobject-tests/batch/many-0637.txtobject-tests/batch/many-0638.txtobject-tests/batch/many-0639.txtobject-tests/batch/many-0640.txtobject-tests/batch/many-0641.txtobject-tests/batch/many-0642.txtobject-tests/batch/many-0643.txtobject-tests/batch/many-0644.txtobject-tests/batch/many-0645.txtobject-tests/batch/many-0646.txtobject-tests/batch/many-0647.txtobject-tests/batch/many-0648.txtobject-tests/batch/many-0649.txtobject-tests/batch/many-0650.txtobject-tests/batch/many-0651.txtobject-tests/batch/many-0652.txtobject-tests/batch/many-0653.txtobject-tests/batch/many-0654.txtobject-tests/batch/many-0655.txtobject-tests/batch/many-0656.txtobject-tests/batch/many-0657.txtobject-tests/batch/many-0658.txtobject-tests/batch/many-0659.txtobject-tests/batch/many-0660.txtobject-tests/batch/many-0661.txtobject-tests/batch/many-0662.txtobject-tests/batch/many-0663.txtobject-tests/batch/many-0664.txtobject-tests/batch/many-0665.txtobject-tests/batch/many-0666.txtobject-tests/batch/many-0667.txtobject-tests/batch/many-0668.txtobject-tests/batch/many-0669.txtobject-tests/batch/many-0670.txtobject-tests/batch/many-0671.txtobject-tests/batch/many-0672.txtobject-tests/batch/many-0673.txtobject-tests/batch/many-0674.txtobject-tests/batch/many-0675.txtobject-tests/batch/many-0676.txtobject-tests/batch/many-0677.txtobject-tests/batch/many-0678.txtobject-tests/batch/many-0679.txtobject-tests/batch/many-0680.txtobject-tests/batch/many-0681.txtobject-tests/batch/many-0682.txtobject-tests/batch/many-0683.txtobject-tests/batch/many-0684.txtobject-tests/batch/many-0685.txtobject-tests/batch/many-0686.txtobject-tests/batch/many-0687.txtobject-tests/batch/many-0688.txtobject-tests/batch/many-0689.txtobject-tests/batch/many-0690.txtobject-tests/batch/many-0691.txtobject-tests/batch/many-0692.txtobject-tests/batch/many-0693.txtobject-tests/batch/many-0694.txtobject-tests/batch/many-0695.txtobject-tests/batch/many-0696.txtobject-tests/batch/many-0697.txtobject-tests/batch/many-0698.txtobject-tests/batch/many-0699.txtobject-tests/batch/many-0700.txtobject-tests/batch/many-0701.txtobject-tests/batch/many-0702.txtobject-tests/batch/many-0703.txtobject-tests/batch/many-0704.txtobject-tests/batch/many-0705.txtobject-tests/batch/many-0706.txtobject-tests/batch/many-0707.txtobject-tests/batch/many-0708.txtobject-tests/batch/many-0709.txtobject-tests/batch/many-0710.txtobject-tests/batch/many-0711.txtobject-tests/batch/many-0712.txtobject-tests/batch/many-0713.txtobject-tests/batch/many-0714.txtobject-tests/batch/many-0715.txtobject-tests/batch/many-0716.txtobject-tests/batch/many-0717.txtobject-tests/batch/many-0718.txtobject-tests/batch/many-0719.txtobject-tests/batch/many-0720.txtobject-tests/batch/many-0721.txtobject-tests/batch/many-0722.txtobject-tests/batch/many-0723.txtobject-tests/batch/many-0724.txtobject-tests/batch/many-0725.txtobject-tests/batch/many-0726.txtobject-tests/batch/many-0727.txtobject-tests/batch/many-0728.txtobject-tests/batch/many-0729.txtobject-tests/batch/many-0730.txtobject-tests/batch/many-0731.txtobject-tests/batch/many-0732.txtobject-tests/batch/many-0733.txtobject-tests/batch/many-0734.txtobject-tests/batch/many-0735.txtobject-tests/batch/many-0736.txtobject-tests/batch/many-0737.txtobject-tests/batch/many-0738.txtobject-tests/batch/many-0739.txtobject-tests/batch/many-0740.txtobject-tests/batch/many-0741.txtobject-tests/batch/many-0742.txtobject-tests/batch/many-0743.txtobject-tests/batch/many-0744.txtobject-tests/batch/many-0745.txtobject-tests/batch/many-0746.txtobject-tests/batch/many-0747.txtobject-tests/batch/many-0748.txtobject-tests/batch/many-0749.txtobject-tests/batch/many-0750.txtobject-tests/batch/many-0751.txtobject-tests/batch/many-0752.txtobject-tests/batch/many-0753.txtobject-tests/batch/many-0754.txtobject-tests/batch/many-0755.txtobject-tests/batch/many-0756.txtobject-tests/batch/many-0757.txtobject-tests/batch/many-0758.txtobject-tests/batch/many-0759.txtobject-tests/batch/many-0760.txtobject-tests/batch/many-0761.txtobject-tests/batch/many-0762.txtobject-tests/batch/many-0763.txtobject-tests/batch/many-0764.txtobject-tests/batch/many-0765.txtobject-tests/batch/many-0766.txtobject-tests/batch/many-0767.txtobject-tests/batch/many-0768.txtobject-tests/batch/many-0769.txtobject-tests/batch/many-0770.txtobject-tests/batch/many-0771.txtobject-tests/batch/many-0772.txtobject-tests/batch/many-0773.txtobject-tests/batch/many-0774.txtobject-tests/batch/many-0775.txtobject-tests/batch/many-0776.txtobject-tests/batch/many-0777.txtobject-tests/batch/many-0778.txtobject-tests/batch/many-0779.txtobject-tests/batch/many-0780.txtobject-tests/batch/many-0781.txtobject-tests/batch/many-0782.txtobject-tests/batch/many-0783.txtobject-tests/batch/many-0784.txtobject-tests/batch/many-0785.txtobject-tests/batch/many-0786.txtobject-tests/batch/many-0787.txtobject-tests/batch/many-0788.txtobject-tests/batch/many-0789.txtobject-tests/batch/many-0790.txtobject-tests/batch/many-0791.txtobject-tests/batch/many-0792.txtobject-tests/batch/many-0793.txtobject-tests/batch/many-0794.txtobject-tests/batch/many-0795.txtobject-tests/batch/many-0796.txtobject-tests/batch/many-0797.txtobject-tests/batch/many-0798.txtobject-tests/batch/many-0799.txtobject-tests/batch/many-0800.txtobject-tests/batch/many-0801.txtobject-tests/batch/many-0802.txtobject-tests/batch/many-0803.txtobject-tests/batch/many-0804.txtobject-tests/batch/many-0805.txtobject-tests/batch/many-0806.txtobject-tests/batch/many-0807.txtobject-tests/batch/many-0808.txtobject-tests/batch/many-0809.txtobject-tests/batch/many-0810.txtobject-tests/batch/many-0811.txtobject-tests/batch/many-0812.txtobject-tests/batch/many-0813.txtobject-tests/batch/many-0814.txtobject-tests/batch/many-0815.txtobject-tests/batch/many-0816.txtobject-tests/batch/many-0817.txtobject-tests/batch/many-0818.txtobject-tests/batch/many-0819.txtobject-tests/batch/many-0820.txtobject-tests/batch/many-0821.txtobject-tests/batch/many-0822.txtobject-tests/batch/many-0823.txtobject-tests/batch/many-0824.txtobject-tests/batch/many-0825.txtobject-tests/batch/many-0826.txtobject-tests/batch/many-0827.txtobject-tests/batch/many-0828.txtobject-tests/batch/many-0829.txtobject-tests/batch/many-0830.txtobject-tests/batch/many-0831.txtobject-tests/batch/many-0832.txtobject-tests/batch/many-0833.txtobject-tests/batch/many-0834.txtobject-tests/batch/many-0835.txtobject-tests/batch/many-0836.txtobject-tests/batch/many-0837.txtobject-tests/batch/many-0838.txtobject-tests/batch/many-0839.txtobject-tests/batch/many-0840.txtobject-tests/batch/many-0841.txtobject-tests/batch/many-0842.txtobject-tests/batch/many-0843.txtobject-tests/batch/many-0844.txtobject-tests/batch/many-0845.txtobject-tests/batch/many-0846.txtobject-tests/batch/many-0847.txtobject-tests/batch/many-0848.txtobject-tests/batch/many-0849.txtobject-tests/batch/many-0850.txtobject-tests/batch/many-0851.txtobject-tests/batch/many-0852.txtobject-tests/batch/many-0853.txtobject-tests/batch/many-0854.txtobject-tests/batch/many-0855.txtobject-tests/batch/many-0856.txtobject-tests/batch/many-0857.txtobject-tests/batch/many-0858.txtobject-tests/batch/many-0859.txtobject-tests/batch/many-0860.txtobject-tests/batch/many-0861.txtobject-tests/batch/many-0862.txtobject-tests/batch/many-0863.txtobject-tests/batch/many-0864.txtobject-tests/batch/many-0865.txtobject-tests/batch/many-0866.txtobject-tests/batch/many-0867.txtobject-tests/batch/many-0868.txtobject-tests/batch/many-0869.txtobject-tests/batch/many-0870.txtobject-tests/batch/many-0871.txtobject-tests/batch/many-0872.txtobject-tests/batch/many-0873.txtobject-tests/batch/many-0874.txtobject-tests/batch/many-0875.txtobject-tests/batch/many-0876.txtobject-tests/batch/many-0877.txtobject-tests/batch/many-0878.txtobject-tests/batch/many-0879.txtobject-tests/batch/many-0880.txtobject-tests/batch/many-0881.txtobject-tests/batch/many-0882.txtobject-tests/batch/many-0883.txtobject-tests/batch/many-0884.txtobject-tests/batch/many-0885.txtobject-tests/batch/many-0886.txtobject-tests/batch/many-0887.txtobject-tests/batch/many-0888.txtobject-tests/batch/many-0889.txtobject-tests/batch/many-0890.txtobject-tests/batch/many-0891.txtobject-tests/batch/many-0892.txtobject-tests/batch/many-0893.txtobject-tests/batch/many-0894.txtobject-tests/batch/many-0895.txtobject-tests/batch/many-0896.txtobject-tests/batch/many-0897.txtobject-tests/batch/many-0898.txtobject-tests/batch/many-0899.txtobject-tests/batch/many-0900.txtobject-tests/batch/many-0901.txtobject-tests/batch/many-0902.txtobject-tests/batch/many-0903.txtobject-tests/batch/many-0904.txtobject-tests/batch/many-0905.txtobject-tests/batch/many-0906.txtobject-tests/batch/many-0907.txtobject-tests/batch/many-0908.txtobject-tests/batch/many-0909.txtobject-tests/batch/many-0910.txtobject-tests/batch/many-0911.txtobject-tests/batch/many-0912.txtobject-tests/batch/many-0913.txtobject-tests/batch/many-0914.txtobject-tests/batch/many-0915.txtobject-tests/batch/many-0916.txtobject-tests/batch/many-0917.txtobject-tests/batch/many-0918.txtobject-tests/batch/many-0919.txtobject-tests/batch/many-0920.txtobject-tests/batch/many-0921.txtobject-tests/batch/many-0922.txtobject-tests/batch/many-0923.txtobject-tests/batch/many-0924.txtobject-tests/batch/many-0925.txtobject-tests/batch/many-0926.txtobject-tests/batch/many-0927.txtobject-tests/batch/many-0928.txtobject-tests/batch/many-0929.txtobject-tests/batch/many-0930.txtobject-tests/batch/many-0931.txtobject-tests/batch/many-0932.txtobject-tests/batch/many-0933.txtobject-tests/batch/many-0934.txtobject-tests/batch/many-0935.txtobject-tests/batch/many-0936.txtobject-tests/batch/many-0937.txtobject-tests/batch/many-0938.txtobject-tests/batch/many-0939.txtobject-tests/batch/many-0940.txtobject-tests/batch/many-0941.txtobject-tests/batch/many-0942.txtobject-tests/batch/many-0943.txtobject-tests/batch/many-0944.txtobject-tests/batch/many-0945.txtobject-tests/batch/many-0946.txtobject-tests/batch/many-0947.txtobject-tests/batch/many-0948.txtobject-tests/batch/many-0949.txtobject-tests/batch/many-0950.txtobject-tests/batch/many-0951.txtobject-tests/batch/many-0952.txtobject-tests/batch/many-0953.txtobject-tests/batch/many-0954.txtobject-tests/batch/many-0955.txtobject-tests/batch/many-0956.txtobject-tests/batch/many-0957.txtobject-tests/batch/many-0958.txtobject-tests/batch/many-0959.txtobject-tests/batch/many-0960.txtobject-tests/batch/many-0961.txtobject-tests/batch/many-0962.txtobject-tests/batch/many-0963.txtobject-tests/batch/many-0964.txtobject-tests/batch/many-0965.txtobject-tests/batch/many-0966.txtobject-tests/batch/many-0967.txtobject-tests/batch/many-0968.txtobject-tests/batch/many-0969.txtobject-tests/batch/many-0970.txtobject-tests/batch/many-0971.txtobject-tests/batch/many-0972.txtobject-tests/batch/many-0973.txtobject-tests/batch/many-0974.txtobject-tests/batch/many-0975.txtobject-tests/batch/many-0976.txtobject-tests/batch/many-0977.txtobject-tests/batch/many-0978.txtobject-tests/batch/many-0979.txtobject-tests/batch/many-0980.txtobject-tests/batch/many-0981.txtobject-tests/batch/many-0982.txtobject-tests/batch/many-0983.txtobject-tests/batch/many-0984.txtobject-tests/batch/many-0985.txtobject-tests/batch/many-0986.txtobject-tests/batch/many-0987.txtobject-tests/batch/many-0988.txtobject-tests/batch/many-0989.txtobject-tests/batch/many-0990.txtobject-tests/batch/many-0991.txtobject-tests/batch/many-0992.txtobject-tests/batch/many-0993.txtobject-tests/batch/many-0994.txtobject-tests/batch/many-0995.txtobject-tests/batch/many-0996.txtobject-tests/batch/many-0997.txtobject-tests/batch/many-0998.txtobject-tests/batch/many-0999.txt"
+ },
+ "framing": "chunked"
}
}
]
@@ -66147,35 +99906,2038 @@
}
},
{
- "at": "/value/append_offset",
+ "at": "/value/deleted",
"optional": false,
"rule": {
"is": "equal",
- "value": 5
+ "value": [
+ "object-tests/batch/many-0000.txt",
+ "object-tests/batch/many-0001.txt",
+ "object-tests/batch/many-0002.txt",
+ "object-tests/batch/many-0003.txt",
+ "object-tests/batch/many-0004.txt",
+ "object-tests/batch/many-0005.txt",
+ "object-tests/batch/many-0006.txt",
+ "object-tests/batch/many-0007.txt",
+ "object-tests/batch/many-0008.txt",
+ "object-tests/batch/many-0009.txt",
+ "object-tests/batch/many-0010.txt",
+ "object-tests/batch/many-0011.txt",
+ "object-tests/batch/many-0012.txt",
+ "object-tests/batch/many-0013.txt",
+ "object-tests/batch/many-0014.txt",
+ "object-tests/batch/many-0015.txt",
+ "object-tests/batch/many-0016.txt",
+ "object-tests/batch/many-0017.txt",
+ "object-tests/batch/many-0018.txt",
+ "object-tests/batch/many-0019.txt",
+ "object-tests/batch/many-0020.txt",
+ "object-tests/batch/many-0021.txt",
+ "object-tests/batch/many-0022.txt",
+ "object-tests/batch/many-0023.txt",
+ "object-tests/batch/many-0024.txt",
+ "object-tests/batch/many-0025.txt",
+ "object-tests/batch/many-0026.txt",
+ "object-tests/batch/many-0027.txt",
+ "object-tests/batch/many-0028.txt",
+ "object-tests/batch/many-0029.txt",
+ "object-tests/batch/many-0030.txt",
+ "object-tests/batch/many-0031.txt",
+ "object-tests/batch/many-0032.txt",
+ "object-tests/batch/many-0033.txt",
+ "object-tests/batch/many-0034.txt",
+ "object-tests/batch/many-0035.txt",
+ "object-tests/batch/many-0036.txt",
+ "object-tests/batch/many-0037.txt",
+ "object-tests/batch/many-0038.txt",
+ "object-tests/batch/many-0039.txt",
+ "object-tests/batch/many-0040.txt",
+ "object-tests/batch/many-0041.txt",
+ "object-tests/batch/many-0042.txt",
+ "object-tests/batch/many-0043.txt",
+ "object-tests/batch/many-0044.txt",
+ "object-tests/batch/many-0045.txt",
+ "object-tests/batch/many-0046.txt",
+ "object-tests/batch/many-0047.txt",
+ "object-tests/batch/many-0048.txt",
+ "object-tests/batch/many-0049.txt",
+ "object-tests/batch/many-0050.txt",
+ "object-tests/batch/many-0051.txt",
+ "object-tests/batch/many-0052.txt",
+ "object-tests/batch/many-0053.txt",
+ "object-tests/batch/many-0054.txt",
+ "object-tests/batch/many-0055.txt",
+ "object-tests/batch/many-0056.txt",
+ "object-tests/batch/many-0057.txt",
+ "object-tests/batch/many-0058.txt",
+ "object-tests/batch/many-0059.txt",
+ "object-tests/batch/many-0060.txt",
+ "object-tests/batch/many-0061.txt",
+ "object-tests/batch/many-0062.txt",
+ "object-tests/batch/many-0063.txt",
+ "object-tests/batch/many-0064.txt",
+ "object-tests/batch/many-0065.txt",
+ "object-tests/batch/many-0066.txt",
+ "object-tests/batch/many-0067.txt",
+ "object-tests/batch/many-0068.txt",
+ "object-tests/batch/many-0069.txt",
+ "object-tests/batch/many-0070.txt",
+ "object-tests/batch/many-0071.txt",
+ "object-tests/batch/many-0072.txt",
+ "object-tests/batch/many-0073.txt",
+ "object-tests/batch/many-0074.txt",
+ "object-tests/batch/many-0075.txt",
+ "object-tests/batch/many-0076.txt",
+ "object-tests/batch/many-0077.txt",
+ "object-tests/batch/many-0078.txt",
+ "object-tests/batch/many-0079.txt",
+ "object-tests/batch/many-0080.txt",
+ "object-tests/batch/many-0081.txt",
+ "object-tests/batch/many-0082.txt",
+ "object-tests/batch/many-0083.txt",
+ "object-tests/batch/many-0084.txt",
+ "object-tests/batch/many-0085.txt",
+ "object-tests/batch/many-0086.txt",
+ "object-tests/batch/many-0087.txt",
+ "object-tests/batch/many-0088.txt",
+ "object-tests/batch/many-0089.txt",
+ "object-tests/batch/many-0090.txt",
+ "object-tests/batch/many-0091.txt",
+ "object-tests/batch/many-0092.txt",
+ "object-tests/batch/many-0093.txt",
+ "object-tests/batch/many-0094.txt",
+ "object-tests/batch/many-0095.txt",
+ "object-tests/batch/many-0096.txt",
+ "object-tests/batch/many-0097.txt",
+ "object-tests/batch/many-0098.txt",
+ "object-tests/batch/many-0099.txt",
+ "object-tests/batch/many-0100.txt",
+ "object-tests/batch/many-0101.txt",
+ "object-tests/batch/many-0102.txt",
+ "object-tests/batch/many-0103.txt",
+ "object-tests/batch/many-0104.txt",
+ "object-tests/batch/many-0105.txt",
+ "object-tests/batch/many-0106.txt",
+ "object-tests/batch/many-0107.txt",
+ "object-tests/batch/many-0108.txt",
+ "object-tests/batch/many-0109.txt",
+ "object-tests/batch/many-0110.txt",
+ "object-tests/batch/many-0111.txt",
+ "object-tests/batch/many-0112.txt",
+ "object-tests/batch/many-0113.txt",
+ "object-tests/batch/many-0114.txt",
+ "object-tests/batch/many-0115.txt",
+ "object-tests/batch/many-0116.txt",
+ "object-tests/batch/many-0117.txt",
+ "object-tests/batch/many-0118.txt",
+ "object-tests/batch/many-0119.txt",
+ "object-tests/batch/many-0120.txt",
+ "object-tests/batch/many-0121.txt",
+ "object-tests/batch/many-0122.txt",
+ "object-tests/batch/many-0123.txt",
+ "object-tests/batch/many-0124.txt",
+ "object-tests/batch/many-0125.txt",
+ "object-tests/batch/many-0126.txt",
+ "object-tests/batch/many-0127.txt",
+ "object-tests/batch/many-0128.txt",
+ "object-tests/batch/many-0129.txt",
+ "object-tests/batch/many-0130.txt",
+ "object-tests/batch/many-0131.txt",
+ "object-tests/batch/many-0132.txt",
+ "object-tests/batch/many-0133.txt",
+ "object-tests/batch/many-0134.txt",
+ "object-tests/batch/many-0135.txt",
+ "object-tests/batch/many-0136.txt",
+ "object-tests/batch/many-0137.txt",
+ "object-tests/batch/many-0138.txt",
+ "object-tests/batch/many-0139.txt",
+ "object-tests/batch/many-0140.txt",
+ "object-tests/batch/many-0141.txt",
+ "object-tests/batch/many-0142.txt",
+ "object-tests/batch/many-0143.txt",
+ "object-tests/batch/many-0144.txt",
+ "object-tests/batch/many-0145.txt",
+ "object-tests/batch/many-0146.txt",
+ "object-tests/batch/many-0147.txt",
+ "object-tests/batch/many-0148.txt",
+ "object-tests/batch/many-0149.txt",
+ "object-tests/batch/many-0150.txt",
+ "object-tests/batch/many-0151.txt",
+ "object-tests/batch/many-0152.txt",
+ "object-tests/batch/many-0153.txt",
+ "object-tests/batch/many-0154.txt",
+ "object-tests/batch/many-0155.txt",
+ "object-tests/batch/many-0156.txt",
+ "object-tests/batch/many-0157.txt",
+ "object-tests/batch/many-0158.txt",
+ "object-tests/batch/many-0159.txt",
+ "object-tests/batch/many-0160.txt",
+ "object-tests/batch/many-0161.txt",
+ "object-tests/batch/many-0162.txt",
+ "object-tests/batch/many-0163.txt",
+ "object-tests/batch/many-0164.txt",
+ "object-tests/batch/many-0165.txt",
+ "object-tests/batch/many-0166.txt",
+ "object-tests/batch/many-0167.txt",
+ "object-tests/batch/many-0168.txt",
+ "object-tests/batch/many-0169.txt",
+ "object-tests/batch/many-0170.txt",
+ "object-tests/batch/many-0171.txt",
+ "object-tests/batch/many-0172.txt",
+ "object-tests/batch/many-0173.txt",
+ "object-tests/batch/many-0174.txt",
+ "object-tests/batch/many-0175.txt",
+ "object-tests/batch/many-0176.txt",
+ "object-tests/batch/many-0177.txt",
+ "object-tests/batch/many-0178.txt",
+ "object-tests/batch/many-0179.txt",
+ "object-tests/batch/many-0180.txt",
+ "object-tests/batch/many-0181.txt",
+ "object-tests/batch/many-0182.txt",
+ "object-tests/batch/many-0183.txt",
+ "object-tests/batch/many-0184.txt",
+ "object-tests/batch/many-0185.txt",
+ "object-tests/batch/many-0186.txt",
+ "object-tests/batch/many-0187.txt",
+ "object-tests/batch/many-0188.txt",
+ "object-tests/batch/many-0189.txt",
+ "object-tests/batch/many-0190.txt",
+ "object-tests/batch/many-0191.txt",
+ "object-tests/batch/many-0192.txt",
+ "object-tests/batch/many-0193.txt",
+ "object-tests/batch/many-0194.txt",
+ "object-tests/batch/many-0195.txt",
+ "object-tests/batch/many-0196.txt",
+ "object-tests/batch/many-0197.txt",
+ "object-tests/batch/many-0198.txt",
+ "object-tests/batch/many-0199.txt",
+ "object-tests/batch/many-0200.txt",
+ "object-tests/batch/many-0201.txt",
+ "object-tests/batch/many-0202.txt",
+ "object-tests/batch/many-0203.txt",
+ "object-tests/batch/many-0204.txt",
+ "object-tests/batch/many-0205.txt",
+ "object-tests/batch/many-0206.txt",
+ "object-tests/batch/many-0207.txt",
+ "object-tests/batch/many-0208.txt",
+ "object-tests/batch/many-0209.txt",
+ "object-tests/batch/many-0210.txt",
+ "object-tests/batch/many-0211.txt",
+ "object-tests/batch/many-0212.txt",
+ "object-tests/batch/many-0213.txt",
+ "object-tests/batch/many-0214.txt",
+ "object-tests/batch/many-0215.txt",
+ "object-tests/batch/many-0216.txt",
+ "object-tests/batch/many-0217.txt",
+ "object-tests/batch/many-0218.txt",
+ "object-tests/batch/many-0219.txt",
+ "object-tests/batch/many-0220.txt",
+ "object-tests/batch/many-0221.txt",
+ "object-tests/batch/many-0222.txt",
+ "object-tests/batch/many-0223.txt",
+ "object-tests/batch/many-0224.txt",
+ "object-tests/batch/many-0225.txt",
+ "object-tests/batch/many-0226.txt",
+ "object-tests/batch/many-0227.txt",
+ "object-tests/batch/many-0228.txt",
+ "object-tests/batch/many-0229.txt",
+ "object-tests/batch/many-0230.txt",
+ "object-tests/batch/many-0231.txt",
+ "object-tests/batch/many-0232.txt",
+ "object-tests/batch/many-0233.txt",
+ "object-tests/batch/many-0234.txt",
+ "object-tests/batch/many-0235.txt",
+ "object-tests/batch/many-0236.txt",
+ "object-tests/batch/many-0237.txt",
+ "object-tests/batch/many-0238.txt",
+ "object-tests/batch/many-0239.txt",
+ "object-tests/batch/many-0240.txt",
+ "object-tests/batch/many-0241.txt",
+ "object-tests/batch/many-0242.txt",
+ "object-tests/batch/many-0243.txt",
+ "object-tests/batch/many-0244.txt",
+ "object-tests/batch/many-0245.txt",
+ "object-tests/batch/many-0246.txt",
+ "object-tests/batch/many-0247.txt",
+ "object-tests/batch/many-0248.txt",
+ "object-tests/batch/many-0249.txt",
+ "object-tests/batch/many-0250.txt",
+ "object-tests/batch/many-0251.txt",
+ "object-tests/batch/many-0252.txt",
+ "object-tests/batch/many-0253.txt",
+ "object-tests/batch/many-0254.txt",
+ "object-tests/batch/many-0255.txt",
+ "object-tests/batch/many-0256.txt",
+ "object-tests/batch/many-0257.txt",
+ "object-tests/batch/many-0258.txt",
+ "object-tests/batch/many-0259.txt",
+ "object-tests/batch/many-0260.txt",
+ "object-tests/batch/many-0261.txt",
+ "object-tests/batch/many-0262.txt",
+ "object-tests/batch/many-0263.txt",
+ "object-tests/batch/many-0264.txt",
+ "object-tests/batch/many-0265.txt",
+ "object-tests/batch/many-0266.txt",
+ "object-tests/batch/many-0267.txt",
+ "object-tests/batch/many-0268.txt",
+ "object-tests/batch/many-0269.txt",
+ "object-tests/batch/many-0270.txt",
+ "object-tests/batch/many-0271.txt",
+ "object-tests/batch/many-0272.txt",
+ "object-tests/batch/many-0273.txt",
+ "object-tests/batch/many-0274.txt",
+ "object-tests/batch/many-0275.txt",
+ "object-tests/batch/many-0276.txt",
+ "object-tests/batch/many-0277.txt",
+ "object-tests/batch/many-0278.txt",
+ "object-tests/batch/many-0279.txt",
+ "object-tests/batch/many-0280.txt",
+ "object-tests/batch/many-0281.txt",
+ "object-tests/batch/many-0282.txt",
+ "object-tests/batch/many-0283.txt",
+ "object-tests/batch/many-0284.txt",
+ "object-tests/batch/many-0285.txt",
+ "object-tests/batch/many-0286.txt",
+ "object-tests/batch/many-0287.txt",
+ "object-tests/batch/many-0288.txt",
+ "object-tests/batch/many-0289.txt",
+ "object-tests/batch/many-0290.txt",
+ "object-tests/batch/many-0291.txt",
+ "object-tests/batch/many-0292.txt",
+ "object-tests/batch/many-0293.txt",
+ "object-tests/batch/many-0294.txt",
+ "object-tests/batch/many-0295.txt",
+ "object-tests/batch/many-0296.txt",
+ "object-tests/batch/many-0297.txt",
+ "object-tests/batch/many-0298.txt",
+ "object-tests/batch/many-0299.txt",
+ "object-tests/batch/many-0300.txt",
+ "object-tests/batch/many-0301.txt",
+ "object-tests/batch/many-0302.txt",
+ "object-tests/batch/many-0303.txt",
+ "object-tests/batch/many-0304.txt",
+ "object-tests/batch/many-0305.txt",
+ "object-tests/batch/many-0306.txt",
+ "object-tests/batch/many-0307.txt",
+ "object-tests/batch/many-0308.txt",
+ "object-tests/batch/many-0309.txt",
+ "object-tests/batch/many-0310.txt",
+ "object-tests/batch/many-0311.txt",
+ "object-tests/batch/many-0312.txt",
+ "object-tests/batch/many-0313.txt",
+ "object-tests/batch/many-0314.txt",
+ "object-tests/batch/many-0315.txt",
+ "object-tests/batch/many-0316.txt",
+ "object-tests/batch/many-0317.txt",
+ "object-tests/batch/many-0318.txt",
+ "object-tests/batch/many-0319.txt",
+ "object-tests/batch/many-0320.txt",
+ "object-tests/batch/many-0321.txt",
+ "object-tests/batch/many-0322.txt",
+ "object-tests/batch/many-0323.txt",
+ "object-tests/batch/many-0324.txt",
+ "object-tests/batch/many-0325.txt",
+ "object-tests/batch/many-0326.txt",
+ "object-tests/batch/many-0327.txt",
+ "object-tests/batch/many-0328.txt",
+ "object-tests/batch/many-0329.txt",
+ "object-tests/batch/many-0330.txt",
+ "object-tests/batch/many-0331.txt",
+ "object-tests/batch/many-0332.txt",
+ "object-tests/batch/many-0333.txt",
+ "object-tests/batch/many-0334.txt",
+ "object-tests/batch/many-0335.txt",
+ "object-tests/batch/many-0336.txt",
+ "object-tests/batch/many-0337.txt",
+ "object-tests/batch/many-0338.txt",
+ "object-tests/batch/many-0339.txt",
+ "object-tests/batch/many-0340.txt",
+ "object-tests/batch/many-0341.txt",
+ "object-tests/batch/many-0342.txt",
+ "object-tests/batch/many-0343.txt",
+ "object-tests/batch/many-0344.txt",
+ "object-tests/batch/many-0345.txt",
+ "object-tests/batch/many-0346.txt",
+ "object-tests/batch/many-0347.txt",
+ "object-tests/batch/many-0348.txt",
+ "object-tests/batch/many-0349.txt",
+ "object-tests/batch/many-0350.txt",
+ "object-tests/batch/many-0351.txt",
+ "object-tests/batch/many-0352.txt",
+ "object-tests/batch/many-0353.txt",
+ "object-tests/batch/many-0354.txt",
+ "object-tests/batch/many-0355.txt",
+ "object-tests/batch/many-0356.txt",
+ "object-tests/batch/many-0357.txt",
+ "object-tests/batch/many-0358.txt",
+ "object-tests/batch/many-0359.txt",
+ "object-tests/batch/many-0360.txt",
+ "object-tests/batch/many-0361.txt",
+ "object-tests/batch/many-0362.txt",
+ "object-tests/batch/many-0363.txt",
+ "object-tests/batch/many-0364.txt",
+ "object-tests/batch/many-0365.txt",
+ "object-tests/batch/many-0366.txt",
+ "object-tests/batch/many-0367.txt",
+ "object-tests/batch/many-0368.txt",
+ "object-tests/batch/many-0369.txt",
+ "object-tests/batch/many-0370.txt",
+ "object-tests/batch/many-0371.txt",
+ "object-tests/batch/many-0372.txt",
+ "object-tests/batch/many-0373.txt",
+ "object-tests/batch/many-0374.txt",
+ "object-tests/batch/many-0375.txt",
+ "object-tests/batch/many-0376.txt",
+ "object-tests/batch/many-0377.txt",
+ "object-tests/batch/many-0378.txt",
+ "object-tests/batch/many-0379.txt",
+ "object-tests/batch/many-0380.txt",
+ "object-tests/batch/many-0381.txt",
+ "object-tests/batch/many-0382.txt",
+ "object-tests/batch/many-0383.txt",
+ "object-tests/batch/many-0384.txt",
+ "object-tests/batch/many-0385.txt",
+ "object-tests/batch/many-0386.txt",
+ "object-tests/batch/many-0387.txt",
+ "object-tests/batch/many-0388.txt",
+ "object-tests/batch/many-0389.txt",
+ "object-tests/batch/many-0390.txt",
+ "object-tests/batch/many-0391.txt",
+ "object-tests/batch/many-0392.txt",
+ "object-tests/batch/many-0393.txt",
+ "object-tests/batch/many-0394.txt",
+ "object-tests/batch/many-0395.txt",
+ "object-tests/batch/many-0396.txt",
+ "object-tests/batch/many-0397.txt",
+ "object-tests/batch/many-0398.txt",
+ "object-tests/batch/many-0399.txt",
+ "object-tests/batch/many-0400.txt",
+ "object-tests/batch/many-0401.txt",
+ "object-tests/batch/many-0402.txt",
+ "object-tests/batch/many-0403.txt",
+ "object-tests/batch/many-0404.txt",
+ "object-tests/batch/many-0405.txt",
+ "object-tests/batch/many-0406.txt",
+ "object-tests/batch/many-0407.txt",
+ "object-tests/batch/many-0408.txt",
+ "object-tests/batch/many-0409.txt",
+ "object-tests/batch/many-0410.txt",
+ "object-tests/batch/many-0411.txt",
+ "object-tests/batch/many-0412.txt",
+ "object-tests/batch/many-0413.txt",
+ "object-tests/batch/many-0414.txt",
+ "object-tests/batch/many-0415.txt",
+ "object-tests/batch/many-0416.txt",
+ "object-tests/batch/many-0417.txt",
+ "object-tests/batch/many-0418.txt",
+ "object-tests/batch/many-0419.txt",
+ "object-tests/batch/many-0420.txt",
+ "object-tests/batch/many-0421.txt",
+ "object-tests/batch/many-0422.txt",
+ "object-tests/batch/many-0423.txt",
+ "object-tests/batch/many-0424.txt",
+ "object-tests/batch/many-0425.txt",
+ "object-tests/batch/many-0426.txt",
+ "object-tests/batch/many-0427.txt",
+ "object-tests/batch/many-0428.txt",
+ "object-tests/batch/many-0429.txt",
+ "object-tests/batch/many-0430.txt",
+ "object-tests/batch/many-0431.txt",
+ "object-tests/batch/many-0432.txt",
+ "object-tests/batch/many-0433.txt",
+ "object-tests/batch/many-0434.txt",
+ "object-tests/batch/many-0435.txt",
+ "object-tests/batch/many-0436.txt",
+ "object-tests/batch/many-0437.txt",
+ "object-tests/batch/many-0438.txt",
+ "object-tests/batch/many-0439.txt",
+ "object-tests/batch/many-0440.txt",
+ "object-tests/batch/many-0441.txt",
+ "object-tests/batch/many-0442.txt",
+ "object-tests/batch/many-0443.txt",
+ "object-tests/batch/many-0444.txt",
+ "object-tests/batch/many-0445.txt",
+ "object-tests/batch/many-0446.txt",
+ "object-tests/batch/many-0447.txt",
+ "object-tests/batch/many-0448.txt",
+ "object-tests/batch/many-0449.txt",
+ "object-tests/batch/many-0450.txt",
+ "object-tests/batch/many-0451.txt",
+ "object-tests/batch/many-0452.txt",
+ "object-tests/batch/many-0453.txt",
+ "object-tests/batch/many-0454.txt",
+ "object-tests/batch/many-0455.txt",
+ "object-tests/batch/many-0456.txt",
+ "object-tests/batch/many-0457.txt",
+ "object-tests/batch/many-0458.txt",
+ "object-tests/batch/many-0459.txt",
+ "object-tests/batch/many-0460.txt",
+ "object-tests/batch/many-0461.txt",
+ "object-tests/batch/many-0462.txt",
+ "object-tests/batch/many-0463.txt",
+ "object-tests/batch/many-0464.txt",
+ "object-tests/batch/many-0465.txt",
+ "object-tests/batch/many-0466.txt",
+ "object-tests/batch/many-0467.txt",
+ "object-tests/batch/many-0468.txt",
+ "object-tests/batch/many-0469.txt",
+ "object-tests/batch/many-0470.txt",
+ "object-tests/batch/many-0471.txt",
+ "object-tests/batch/many-0472.txt",
+ "object-tests/batch/many-0473.txt",
+ "object-tests/batch/many-0474.txt",
+ "object-tests/batch/many-0475.txt",
+ "object-tests/batch/many-0476.txt",
+ "object-tests/batch/many-0477.txt",
+ "object-tests/batch/many-0478.txt",
+ "object-tests/batch/many-0479.txt",
+ "object-tests/batch/many-0480.txt",
+ "object-tests/batch/many-0481.txt",
+ "object-tests/batch/many-0482.txt",
+ "object-tests/batch/many-0483.txt",
+ "object-tests/batch/many-0484.txt",
+ "object-tests/batch/many-0485.txt",
+ "object-tests/batch/many-0486.txt",
+ "object-tests/batch/many-0487.txt",
+ "object-tests/batch/many-0488.txt",
+ "object-tests/batch/many-0489.txt",
+ "object-tests/batch/many-0490.txt",
+ "object-tests/batch/many-0491.txt",
+ "object-tests/batch/many-0492.txt",
+ "object-tests/batch/many-0493.txt",
+ "object-tests/batch/many-0494.txt",
+ "object-tests/batch/many-0495.txt",
+ "object-tests/batch/many-0496.txt",
+ "object-tests/batch/many-0497.txt",
+ "object-tests/batch/many-0498.txt",
+ "object-tests/batch/many-0499.txt",
+ "object-tests/batch/many-0500.txt",
+ "object-tests/batch/many-0501.txt",
+ "object-tests/batch/many-0502.txt",
+ "object-tests/batch/many-0503.txt",
+ "object-tests/batch/many-0504.txt",
+ "object-tests/batch/many-0505.txt",
+ "object-tests/batch/many-0506.txt",
+ "object-tests/batch/many-0507.txt",
+ "object-tests/batch/many-0508.txt",
+ "object-tests/batch/many-0509.txt",
+ "object-tests/batch/many-0510.txt",
+ "object-tests/batch/many-0511.txt",
+ "object-tests/batch/many-0512.txt",
+ "object-tests/batch/many-0513.txt",
+ "object-tests/batch/many-0514.txt",
+ "object-tests/batch/many-0515.txt",
+ "object-tests/batch/many-0516.txt",
+ "object-tests/batch/many-0517.txt",
+ "object-tests/batch/many-0518.txt",
+ "object-tests/batch/many-0519.txt",
+ "object-tests/batch/many-0520.txt",
+ "object-tests/batch/many-0521.txt",
+ "object-tests/batch/many-0522.txt",
+ "object-tests/batch/many-0523.txt",
+ "object-tests/batch/many-0524.txt",
+ "object-tests/batch/many-0525.txt",
+ "object-tests/batch/many-0526.txt",
+ "object-tests/batch/many-0527.txt",
+ "object-tests/batch/many-0528.txt",
+ "object-tests/batch/many-0529.txt",
+ "object-tests/batch/many-0530.txt",
+ "object-tests/batch/many-0531.txt",
+ "object-tests/batch/many-0532.txt",
+ "object-tests/batch/many-0533.txt",
+ "object-tests/batch/many-0534.txt",
+ "object-tests/batch/many-0535.txt",
+ "object-tests/batch/many-0536.txt",
+ "object-tests/batch/many-0537.txt",
+ "object-tests/batch/many-0538.txt",
+ "object-tests/batch/many-0539.txt",
+ "object-tests/batch/many-0540.txt",
+ "object-tests/batch/many-0541.txt",
+ "object-tests/batch/many-0542.txt",
+ "object-tests/batch/many-0543.txt",
+ "object-tests/batch/many-0544.txt",
+ "object-tests/batch/many-0545.txt",
+ "object-tests/batch/many-0546.txt",
+ "object-tests/batch/many-0547.txt",
+ "object-tests/batch/many-0548.txt",
+ "object-tests/batch/many-0549.txt",
+ "object-tests/batch/many-0550.txt",
+ "object-tests/batch/many-0551.txt",
+ "object-tests/batch/many-0552.txt",
+ "object-tests/batch/many-0553.txt",
+ "object-tests/batch/many-0554.txt",
+ "object-tests/batch/many-0555.txt",
+ "object-tests/batch/many-0556.txt",
+ "object-tests/batch/many-0557.txt",
+ "object-tests/batch/many-0558.txt",
+ "object-tests/batch/many-0559.txt",
+ "object-tests/batch/many-0560.txt",
+ "object-tests/batch/many-0561.txt",
+ "object-tests/batch/many-0562.txt",
+ "object-tests/batch/many-0563.txt",
+ "object-tests/batch/many-0564.txt",
+ "object-tests/batch/many-0565.txt",
+ "object-tests/batch/many-0566.txt",
+ "object-tests/batch/many-0567.txt",
+ "object-tests/batch/many-0568.txt",
+ "object-tests/batch/many-0569.txt",
+ "object-tests/batch/many-0570.txt",
+ "object-tests/batch/many-0571.txt",
+ "object-tests/batch/many-0572.txt",
+ "object-tests/batch/many-0573.txt",
+ "object-tests/batch/many-0574.txt",
+ "object-tests/batch/many-0575.txt",
+ "object-tests/batch/many-0576.txt",
+ "object-tests/batch/many-0577.txt",
+ "object-tests/batch/many-0578.txt",
+ "object-tests/batch/many-0579.txt",
+ "object-tests/batch/many-0580.txt",
+ "object-tests/batch/many-0581.txt",
+ "object-tests/batch/many-0582.txt",
+ "object-tests/batch/many-0583.txt",
+ "object-tests/batch/many-0584.txt",
+ "object-tests/batch/many-0585.txt",
+ "object-tests/batch/many-0586.txt",
+ "object-tests/batch/many-0587.txt",
+ "object-tests/batch/many-0588.txt",
+ "object-tests/batch/many-0589.txt",
+ "object-tests/batch/many-0590.txt",
+ "object-tests/batch/many-0591.txt",
+ "object-tests/batch/many-0592.txt",
+ "object-tests/batch/many-0593.txt",
+ "object-tests/batch/many-0594.txt",
+ "object-tests/batch/many-0595.txt",
+ "object-tests/batch/many-0596.txt",
+ "object-tests/batch/many-0597.txt",
+ "object-tests/batch/many-0598.txt",
+ "object-tests/batch/many-0599.txt",
+ "object-tests/batch/many-0600.txt",
+ "object-tests/batch/many-0601.txt",
+ "object-tests/batch/many-0602.txt",
+ "object-tests/batch/many-0603.txt",
+ "object-tests/batch/many-0604.txt",
+ "object-tests/batch/many-0605.txt",
+ "object-tests/batch/many-0606.txt",
+ "object-tests/batch/many-0607.txt",
+ "object-tests/batch/many-0608.txt",
+ "object-tests/batch/many-0609.txt",
+ "object-tests/batch/many-0610.txt",
+ "object-tests/batch/many-0611.txt",
+ "object-tests/batch/many-0612.txt",
+ "object-tests/batch/many-0613.txt",
+ "object-tests/batch/many-0614.txt",
+ "object-tests/batch/many-0615.txt",
+ "object-tests/batch/many-0616.txt",
+ "object-tests/batch/many-0617.txt",
+ "object-tests/batch/many-0618.txt",
+ "object-tests/batch/many-0619.txt",
+ "object-tests/batch/many-0620.txt",
+ "object-tests/batch/many-0621.txt",
+ "object-tests/batch/many-0622.txt",
+ "object-tests/batch/many-0623.txt",
+ "object-tests/batch/many-0624.txt",
+ "object-tests/batch/many-0625.txt",
+ "object-tests/batch/many-0626.txt",
+ "object-tests/batch/many-0627.txt",
+ "object-tests/batch/many-0628.txt",
+ "object-tests/batch/many-0629.txt",
+ "object-tests/batch/many-0630.txt",
+ "object-tests/batch/many-0631.txt",
+ "object-tests/batch/many-0632.txt",
+ "object-tests/batch/many-0633.txt",
+ "object-tests/batch/many-0634.txt",
+ "object-tests/batch/many-0635.txt",
+ "object-tests/batch/many-0636.txt",
+ "object-tests/batch/many-0637.txt",
+ "object-tests/batch/many-0638.txt",
+ "object-tests/batch/many-0639.txt",
+ "object-tests/batch/many-0640.txt",
+ "object-tests/batch/many-0641.txt",
+ "object-tests/batch/many-0642.txt",
+ "object-tests/batch/many-0643.txt",
+ "object-tests/batch/many-0644.txt",
+ "object-tests/batch/many-0645.txt",
+ "object-tests/batch/many-0646.txt",
+ "object-tests/batch/many-0647.txt",
+ "object-tests/batch/many-0648.txt",
+ "object-tests/batch/many-0649.txt",
+ "object-tests/batch/many-0650.txt",
+ "object-tests/batch/many-0651.txt",
+ "object-tests/batch/many-0652.txt",
+ "object-tests/batch/many-0653.txt",
+ "object-tests/batch/many-0654.txt",
+ "object-tests/batch/many-0655.txt",
+ "object-tests/batch/many-0656.txt",
+ "object-tests/batch/many-0657.txt",
+ "object-tests/batch/many-0658.txt",
+ "object-tests/batch/many-0659.txt",
+ "object-tests/batch/many-0660.txt",
+ "object-tests/batch/many-0661.txt",
+ "object-tests/batch/many-0662.txt",
+ "object-tests/batch/many-0663.txt",
+ "object-tests/batch/many-0664.txt",
+ "object-tests/batch/many-0665.txt",
+ "object-tests/batch/many-0666.txt",
+ "object-tests/batch/many-0667.txt",
+ "object-tests/batch/many-0668.txt",
+ "object-tests/batch/many-0669.txt",
+ "object-tests/batch/many-0670.txt",
+ "object-tests/batch/many-0671.txt",
+ "object-tests/batch/many-0672.txt",
+ "object-tests/batch/many-0673.txt",
+ "object-tests/batch/many-0674.txt",
+ "object-tests/batch/many-0675.txt",
+ "object-tests/batch/many-0676.txt",
+ "object-tests/batch/many-0677.txt",
+ "object-tests/batch/many-0678.txt",
+ "object-tests/batch/many-0679.txt",
+ "object-tests/batch/many-0680.txt",
+ "object-tests/batch/many-0681.txt",
+ "object-tests/batch/many-0682.txt",
+ "object-tests/batch/many-0683.txt",
+ "object-tests/batch/many-0684.txt",
+ "object-tests/batch/many-0685.txt",
+ "object-tests/batch/many-0686.txt",
+ "object-tests/batch/many-0687.txt",
+ "object-tests/batch/many-0688.txt",
+ "object-tests/batch/many-0689.txt",
+ "object-tests/batch/many-0690.txt",
+ "object-tests/batch/many-0691.txt",
+ "object-tests/batch/many-0692.txt",
+ "object-tests/batch/many-0693.txt",
+ "object-tests/batch/many-0694.txt",
+ "object-tests/batch/many-0695.txt",
+ "object-tests/batch/many-0696.txt",
+ "object-tests/batch/many-0697.txt",
+ "object-tests/batch/many-0698.txt",
+ "object-tests/batch/many-0699.txt",
+ "object-tests/batch/many-0700.txt",
+ "object-tests/batch/many-0701.txt",
+ "object-tests/batch/many-0702.txt",
+ "object-tests/batch/many-0703.txt",
+ "object-tests/batch/many-0704.txt",
+ "object-tests/batch/many-0705.txt",
+ "object-tests/batch/many-0706.txt",
+ "object-tests/batch/many-0707.txt",
+ "object-tests/batch/many-0708.txt",
+ "object-tests/batch/many-0709.txt",
+ "object-tests/batch/many-0710.txt",
+ "object-tests/batch/many-0711.txt",
+ "object-tests/batch/many-0712.txt",
+ "object-tests/batch/many-0713.txt",
+ "object-tests/batch/many-0714.txt",
+ "object-tests/batch/many-0715.txt",
+ "object-tests/batch/many-0716.txt",
+ "object-tests/batch/many-0717.txt",
+ "object-tests/batch/many-0718.txt",
+ "object-tests/batch/many-0719.txt",
+ "object-tests/batch/many-0720.txt",
+ "object-tests/batch/many-0721.txt",
+ "object-tests/batch/many-0722.txt",
+ "object-tests/batch/many-0723.txt",
+ "object-tests/batch/many-0724.txt",
+ "object-tests/batch/many-0725.txt",
+ "object-tests/batch/many-0726.txt",
+ "object-tests/batch/many-0727.txt",
+ "object-tests/batch/many-0728.txt",
+ "object-tests/batch/many-0729.txt",
+ "object-tests/batch/many-0730.txt",
+ "object-tests/batch/many-0731.txt",
+ "object-tests/batch/many-0732.txt",
+ "object-tests/batch/many-0733.txt",
+ "object-tests/batch/many-0734.txt",
+ "object-tests/batch/many-0735.txt",
+ "object-tests/batch/many-0736.txt",
+ "object-tests/batch/many-0737.txt",
+ "object-tests/batch/many-0738.txt",
+ "object-tests/batch/many-0739.txt",
+ "object-tests/batch/many-0740.txt",
+ "object-tests/batch/many-0741.txt",
+ "object-tests/batch/many-0742.txt",
+ "object-tests/batch/many-0743.txt",
+ "object-tests/batch/many-0744.txt",
+ "object-tests/batch/many-0745.txt",
+ "object-tests/batch/many-0746.txt",
+ "object-tests/batch/many-0747.txt",
+ "object-tests/batch/many-0748.txt",
+ "object-tests/batch/many-0749.txt",
+ "object-tests/batch/many-0750.txt",
+ "object-tests/batch/many-0751.txt",
+ "object-tests/batch/many-0752.txt",
+ "object-tests/batch/many-0753.txt",
+ "object-tests/batch/many-0754.txt",
+ "object-tests/batch/many-0755.txt",
+ "object-tests/batch/many-0756.txt",
+ "object-tests/batch/many-0757.txt",
+ "object-tests/batch/many-0758.txt",
+ "object-tests/batch/many-0759.txt",
+ "object-tests/batch/many-0760.txt",
+ "object-tests/batch/many-0761.txt",
+ "object-tests/batch/many-0762.txt",
+ "object-tests/batch/many-0763.txt",
+ "object-tests/batch/many-0764.txt",
+ "object-tests/batch/many-0765.txt",
+ "object-tests/batch/many-0766.txt",
+ "object-tests/batch/many-0767.txt",
+ "object-tests/batch/many-0768.txt",
+ "object-tests/batch/many-0769.txt",
+ "object-tests/batch/many-0770.txt",
+ "object-tests/batch/many-0771.txt",
+ "object-tests/batch/many-0772.txt",
+ "object-tests/batch/many-0773.txt",
+ "object-tests/batch/many-0774.txt",
+ "object-tests/batch/many-0775.txt",
+ "object-tests/batch/many-0776.txt",
+ "object-tests/batch/many-0777.txt",
+ "object-tests/batch/many-0778.txt",
+ "object-tests/batch/many-0779.txt",
+ "object-tests/batch/many-0780.txt",
+ "object-tests/batch/many-0781.txt",
+ "object-tests/batch/many-0782.txt",
+ "object-tests/batch/many-0783.txt",
+ "object-tests/batch/many-0784.txt",
+ "object-tests/batch/many-0785.txt",
+ "object-tests/batch/many-0786.txt",
+ "object-tests/batch/many-0787.txt",
+ "object-tests/batch/many-0788.txt",
+ "object-tests/batch/many-0789.txt",
+ "object-tests/batch/many-0790.txt",
+ "object-tests/batch/many-0791.txt",
+ "object-tests/batch/many-0792.txt",
+ "object-tests/batch/many-0793.txt",
+ "object-tests/batch/many-0794.txt",
+ "object-tests/batch/many-0795.txt",
+ "object-tests/batch/many-0796.txt",
+ "object-tests/batch/many-0797.txt",
+ "object-tests/batch/many-0798.txt",
+ "object-tests/batch/many-0799.txt",
+ "object-tests/batch/many-0800.txt",
+ "object-tests/batch/many-0801.txt",
+ "object-tests/batch/many-0802.txt",
+ "object-tests/batch/many-0803.txt",
+ "object-tests/batch/many-0804.txt",
+ "object-tests/batch/many-0805.txt",
+ "object-tests/batch/many-0806.txt",
+ "object-tests/batch/many-0807.txt",
+ "object-tests/batch/many-0808.txt",
+ "object-tests/batch/many-0809.txt",
+ "object-tests/batch/many-0810.txt",
+ "object-tests/batch/many-0811.txt",
+ "object-tests/batch/many-0812.txt",
+ "object-tests/batch/many-0813.txt",
+ "object-tests/batch/many-0814.txt",
+ "object-tests/batch/many-0815.txt",
+ "object-tests/batch/many-0816.txt",
+ "object-tests/batch/many-0817.txt",
+ "object-tests/batch/many-0818.txt",
+ "object-tests/batch/many-0819.txt",
+ "object-tests/batch/many-0820.txt",
+ "object-tests/batch/many-0821.txt",
+ "object-tests/batch/many-0822.txt",
+ "object-tests/batch/many-0823.txt",
+ "object-tests/batch/many-0824.txt",
+ "object-tests/batch/many-0825.txt",
+ "object-tests/batch/many-0826.txt",
+ "object-tests/batch/many-0827.txt",
+ "object-tests/batch/many-0828.txt",
+ "object-tests/batch/many-0829.txt",
+ "object-tests/batch/many-0830.txt",
+ "object-tests/batch/many-0831.txt",
+ "object-tests/batch/many-0832.txt",
+ "object-tests/batch/many-0833.txt",
+ "object-tests/batch/many-0834.txt",
+ "object-tests/batch/many-0835.txt",
+ "object-tests/batch/many-0836.txt",
+ "object-tests/batch/many-0837.txt",
+ "object-tests/batch/many-0838.txt",
+ "object-tests/batch/many-0839.txt",
+ "object-tests/batch/many-0840.txt",
+ "object-tests/batch/many-0841.txt",
+ "object-tests/batch/many-0842.txt",
+ "object-tests/batch/many-0843.txt",
+ "object-tests/batch/many-0844.txt",
+ "object-tests/batch/many-0845.txt",
+ "object-tests/batch/many-0846.txt",
+ "object-tests/batch/many-0847.txt",
+ "object-tests/batch/many-0848.txt",
+ "object-tests/batch/many-0849.txt",
+ "object-tests/batch/many-0850.txt",
+ "object-tests/batch/many-0851.txt",
+ "object-tests/batch/many-0852.txt",
+ "object-tests/batch/many-0853.txt",
+ "object-tests/batch/many-0854.txt",
+ "object-tests/batch/many-0855.txt",
+ "object-tests/batch/many-0856.txt",
+ "object-tests/batch/many-0857.txt",
+ "object-tests/batch/many-0858.txt",
+ "object-tests/batch/many-0859.txt",
+ "object-tests/batch/many-0860.txt",
+ "object-tests/batch/many-0861.txt",
+ "object-tests/batch/many-0862.txt",
+ "object-tests/batch/many-0863.txt",
+ "object-tests/batch/many-0864.txt",
+ "object-tests/batch/many-0865.txt",
+ "object-tests/batch/many-0866.txt",
+ "object-tests/batch/many-0867.txt",
+ "object-tests/batch/many-0868.txt",
+ "object-tests/batch/many-0869.txt",
+ "object-tests/batch/many-0870.txt",
+ "object-tests/batch/many-0871.txt",
+ "object-tests/batch/many-0872.txt",
+ "object-tests/batch/many-0873.txt",
+ "object-tests/batch/many-0874.txt",
+ "object-tests/batch/many-0875.txt",
+ "object-tests/batch/many-0876.txt",
+ "object-tests/batch/many-0877.txt",
+ "object-tests/batch/many-0878.txt",
+ "object-tests/batch/many-0879.txt",
+ "object-tests/batch/many-0880.txt",
+ "object-tests/batch/many-0881.txt",
+ "object-tests/batch/many-0882.txt",
+ "object-tests/batch/many-0883.txt",
+ "object-tests/batch/many-0884.txt",
+ "object-tests/batch/many-0885.txt",
+ "object-tests/batch/many-0886.txt",
+ "object-tests/batch/many-0887.txt",
+ "object-tests/batch/many-0888.txt",
+ "object-tests/batch/many-0889.txt",
+ "object-tests/batch/many-0890.txt",
+ "object-tests/batch/many-0891.txt",
+ "object-tests/batch/many-0892.txt",
+ "object-tests/batch/many-0893.txt",
+ "object-tests/batch/many-0894.txt",
+ "object-tests/batch/many-0895.txt",
+ "object-tests/batch/many-0896.txt",
+ "object-tests/batch/many-0897.txt",
+ "object-tests/batch/many-0898.txt",
+ "object-tests/batch/many-0899.txt",
+ "object-tests/batch/many-0900.txt",
+ "object-tests/batch/many-0901.txt",
+ "object-tests/batch/many-0902.txt",
+ "object-tests/batch/many-0903.txt",
+ "object-tests/batch/many-0904.txt",
+ "object-tests/batch/many-0905.txt",
+ "object-tests/batch/many-0906.txt",
+ "object-tests/batch/many-0907.txt",
+ "object-tests/batch/many-0908.txt",
+ "object-tests/batch/many-0909.txt",
+ "object-tests/batch/many-0910.txt",
+ "object-tests/batch/many-0911.txt",
+ "object-tests/batch/many-0912.txt",
+ "object-tests/batch/many-0913.txt",
+ "object-tests/batch/many-0914.txt",
+ "object-tests/batch/many-0915.txt",
+ "object-tests/batch/many-0916.txt",
+ "object-tests/batch/many-0917.txt",
+ "object-tests/batch/many-0918.txt",
+ "object-tests/batch/many-0919.txt",
+ "object-tests/batch/many-0920.txt",
+ "object-tests/batch/many-0921.txt",
+ "object-tests/batch/many-0922.txt",
+ "object-tests/batch/many-0923.txt",
+ "object-tests/batch/many-0924.txt",
+ "object-tests/batch/many-0925.txt",
+ "object-tests/batch/many-0926.txt",
+ "object-tests/batch/many-0927.txt",
+ "object-tests/batch/many-0928.txt",
+ "object-tests/batch/many-0929.txt",
+ "object-tests/batch/many-0930.txt",
+ "object-tests/batch/many-0931.txt",
+ "object-tests/batch/many-0932.txt",
+ "object-tests/batch/many-0933.txt",
+ "object-tests/batch/many-0934.txt",
+ "object-tests/batch/many-0935.txt",
+ "object-tests/batch/many-0936.txt",
+ "object-tests/batch/many-0937.txt",
+ "object-tests/batch/many-0938.txt",
+ "object-tests/batch/many-0939.txt",
+ "object-tests/batch/many-0940.txt",
+ "object-tests/batch/many-0941.txt",
+ "object-tests/batch/many-0942.txt",
+ "object-tests/batch/many-0943.txt",
+ "object-tests/batch/many-0944.txt",
+ "object-tests/batch/many-0945.txt",
+ "object-tests/batch/many-0946.txt",
+ "object-tests/batch/many-0947.txt",
+ "object-tests/batch/many-0948.txt",
+ "object-tests/batch/many-0949.txt",
+ "object-tests/batch/many-0950.txt",
+ "object-tests/batch/many-0951.txt",
+ "object-tests/batch/many-0952.txt",
+ "object-tests/batch/many-0953.txt",
+ "object-tests/batch/many-0954.txt",
+ "object-tests/batch/many-0955.txt",
+ "object-tests/batch/many-0956.txt",
+ "object-tests/batch/many-0957.txt",
+ "object-tests/batch/many-0958.txt",
+ "object-tests/batch/many-0959.txt",
+ "object-tests/batch/many-0960.txt",
+ "object-tests/batch/many-0961.txt",
+ "object-tests/batch/many-0962.txt",
+ "object-tests/batch/many-0963.txt",
+ "object-tests/batch/many-0964.txt",
+ "object-tests/batch/many-0965.txt",
+ "object-tests/batch/many-0966.txt",
+ "object-tests/batch/many-0967.txt",
+ "object-tests/batch/many-0968.txt",
+ "object-tests/batch/many-0969.txt",
+ "object-tests/batch/many-0970.txt",
+ "object-tests/batch/many-0971.txt",
+ "object-tests/batch/many-0972.txt",
+ "object-tests/batch/many-0973.txt",
+ "object-tests/batch/many-0974.txt",
+ "object-tests/batch/many-0975.txt",
+ "object-tests/batch/many-0976.txt",
+ "object-tests/batch/many-0977.txt",
+ "object-tests/batch/many-0978.txt",
+ "object-tests/batch/many-0979.txt",
+ "object-tests/batch/many-0980.txt",
+ "object-tests/batch/many-0981.txt",
+ "object-tests/batch/many-0982.txt",
+ "object-tests/batch/many-0983.txt",
+ "object-tests/batch/many-0984.txt",
+ "object-tests/batch/many-0985.txt",
+ "object-tests/batch/many-0986.txt",
+ "object-tests/batch/many-0987.txt",
+ "object-tests/batch/many-0988.txt",
+ "object-tests/batch/many-0989.txt",
+ "object-tests/batch/many-0990.txt",
+ "object-tests/batch/many-0991.txt",
+ "object-tests/batch/many-0992.txt",
+ "object-tests/batch/many-0993.txt",
+ "object-tests/batch/many-0994.txt",
+ "object-tests/batch/many-0995.txt",
+ "object-tests/batch/many-0996.txt",
+ "object-tests/batch/many-0997.txt",
+ "object-tests/batch/many-0998.txt",
+ "object-tests/batch/many-0999.txt"
+ ]
}
},
{
- "at": "/value/committed_block_count",
+ "at": "/value/errors",
"optional": false,
"rule": {
"is": "equal",
- "value": 2
+ "value": []
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/create-append",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-many-1001",
+ "profile": "s3",
"lane": "core",
- "purpose": "Create an empty append blob",
+ "purpose": "Report a DeleteObjects request of 1,001 keys, one more than S3 takes, as an error. A client may refuse it before sending",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html"
],
"call": {
- "key": "object-tests/append/object.log",
- "op": "azure.create_append"
+ "keys": [
+ "object-tests/batch/many-0000.txt",
+ "object-tests/batch/many-0001.txt",
+ "object-tests/batch/many-0002.txt",
+ "object-tests/batch/many-0003.txt",
+ "object-tests/batch/many-0004.txt",
+ "object-tests/batch/many-0005.txt",
+ "object-tests/batch/many-0006.txt",
+ "object-tests/batch/many-0007.txt",
+ "object-tests/batch/many-0008.txt",
+ "object-tests/batch/many-0009.txt",
+ "object-tests/batch/many-0010.txt",
+ "object-tests/batch/many-0011.txt",
+ "object-tests/batch/many-0012.txt",
+ "object-tests/batch/many-0013.txt",
+ "object-tests/batch/many-0014.txt",
+ "object-tests/batch/many-0015.txt",
+ "object-tests/batch/many-0016.txt",
+ "object-tests/batch/many-0017.txt",
+ "object-tests/batch/many-0018.txt",
+ "object-tests/batch/many-0019.txt",
+ "object-tests/batch/many-0020.txt",
+ "object-tests/batch/many-0021.txt",
+ "object-tests/batch/many-0022.txt",
+ "object-tests/batch/many-0023.txt",
+ "object-tests/batch/many-0024.txt",
+ "object-tests/batch/many-0025.txt",
+ "object-tests/batch/many-0026.txt",
+ "object-tests/batch/many-0027.txt",
+ "object-tests/batch/many-0028.txt",
+ "object-tests/batch/many-0029.txt",
+ "object-tests/batch/many-0030.txt",
+ "object-tests/batch/many-0031.txt",
+ "object-tests/batch/many-0032.txt",
+ "object-tests/batch/many-0033.txt",
+ "object-tests/batch/many-0034.txt",
+ "object-tests/batch/many-0035.txt",
+ "object-tests/batch/many-0036.txt",
+ "object-tests/batch/many-0037.txt",
+ "object-tests/batch/many-0038.txt",
+ "object-tests/batch/many-0039.txt",
+ "object-tests/batch/many-0040.txt",
+ "object-tests/batch/many-0041.txt",
+ "object-tests/batch/many-0042.txt",
+ "object-tests/batch/many-0043.txt",
+ "object-tests/batch/many-0044.txt",
+ "object-tests/batch/many-0045.txt",
+ "object-tests/batch/many-0046.txt",
+ "object-tests/batch/many-0047.txt",
+ "object-tests/batch/many-0048.txt",
+ "object-tests/batch/many-0049.txt",
+ "object-tests/batch/many-0050.txt",
+ "object-tests/batch/many-0051.txt",
+ "object-tests/batch/many-0052.txt",
+ "object-tests/batch/many-0053.txt",
+ "object-tests/batch/many-0054.txt",
+ "object-tests/batch/many-0055.txt",
+ "object-tests/batch/many-0056.txt",
+ "object-tests/batch/many-0057.txt",
+ "object-tests/batch/many-0058.txt",
+ "object-tests/batch/many-0059.txt",
+ "object-tests/batch/many-0060.txt",
+ "object-tests/batch/many-0061.txt",
+ "object-tests/batch/many-0062.txt",
+ "object-tests/batch/many-0063.txt",
+ "object-tests/batch/many-0064.txt",
+ "object-tests/batch/many-0065.txt",
+ "object-tests/batch/many-0066.txt",
+ "object-tests/batch/many-0067.txt",
+ "object-tests/batch/many-0068.txt",
+ "object-tests/batch/many-0069.txt",
+ "object-tests/batch/many-0070.txt",
+ "object-tests/batch/many-0071.txt",
+ "object-tests/batch/many-0072.txt",
+ "object-tests/batch/many-0073.txt",
+ "object-tests/batch/many-0074.txt",
+ "object-tests/batch/many-0075.txt",
+ "object-tests/batch/many-0076.txt",
+ "object-tests/batch/many-0077.txt",
+ "object-tests/batch/many-0078.txt",
+ "object-tests/batch/many-0079.txt",
+ "object-tests/batch/many-0080.txt",
+ "object-tests/batch/many-0081.txt",
+ "object-tests/batch/many-0082.txt",
+ "object-tests/batch/many-0083.txt",
+ "object-tests/batch/many-0084.txt",
+ "object-tests/batch/many-0085.txt",
+ "object-tests/batch/many-0086.txt",
+ "object-tests/batch/many-0087.txt",
+ "object-tests/batch/many-0088.txt",
+ "object-tests/batch/many-0089.txt",
+ "object-tests/batch/many-0090.txt",
+ "object-tests/batch/many-0091.txt",
+ "object-tests/batch/many-0092.txt",
+ "object-tests/batch/many-0093.txt",
+ "object-tests/batch/many-0094.txt",
+ "object-tests/batch/many-0095.txt",
+ "object-tests/batch/many-0096.txt",
+ "object-tests/batch/many-0097.txt",
+ "object-tests/batch/many-0098.txt",
+ "object-tests/batch/many-0099.txt",
+ "object-tests/batch/many-0100.txt",
+ "object-tests/batch/many-0101.txt",
+ "object-tests/batch/many-0102.txt",
+ "object-tests/batch/many-0103.txt",
+ "object-tests/batch/many-0104.txt",
+ "object-tests/batch/many-0105.txt",
+ "object-tests/batch/many-0106.txt",
+ "object-tests/batch/many-0107.txt",
+ "object-tests/batch/many-0108.txt",
+ "object-tests/batch/many-0109.txt",
+ "object-tests/batch/many-0110.txt",
+ "object-tests/batch/many-0111.txt",
+ "object-tests/batch/many-0112.txt",
+ "object-tests/batch/many-0113.txt",
+ "object-tests/batch/many-0114.txt",
+ "object-tests/batch/many-0115.txt",
+ "object-tests/batch/many-0116.txt",
+ "object-tests/batch/many-0117.txt",
+ "object-tests/batch/many-0118.txt",
+ "object-tests/batch/many-0119.txt",
+ "object-tests/batch/many-0120.txt",
+ "object-tests/batch/many-0121.txt",
+ "object-tests/batch/many-0122.txt",
+ "object-tests/batch/many-0123.txt",
+ "object-tests/batch/many-0124.txt",
+ "object-tests/batch/many-0125.txt",
+ "object-tests/batch/many-0126.txt",
+ "object-tests/batch/many-0127.txt",
+ "object-tests/batch/many-0128.txt",
+ "object-tests/batch/many-0129.txt",
+ "object-tests/batch/many-0130.txt",
+ "object-tests/batch/many-0131.txt",
+ "object-tests/batch/many-0132.txt",
+ "object-tests/batch/many-0133.txt",
+ "object-tests/batch/many-0134.txt",
+ "object-tests/batch/many-0135.txt",
+ "object-tests/batch/many-0136.txt",
+ "object-tests/batch/many-0137.txt",
+ "object-tests/batch/many-0138.txt",
+ "object-tests/batch/many-0139.txt",
+ "object-tests/batch/many-0140.txt",
+ "object-tests/batch/many-0141.txt",
+ "object-tests/batch/many-0142.txt",
+ "object-tests/batch/many-0143.txt",
+ "object-tests/batch/many-0144.txt",
+ "object-tests/batch/many-0145.txt",
+ "object-tests/batch/many-0146.txt",
+ "object-tests/batch/many-0147.txt",
+ "object-tests/batch/many-0148.txt",
+ "object-tests/batch/many-0149.txt",
+ "object-tests/batch/many-0150.txt",
+ "object-tests/batch/many-0151.txt",
+ "object-tests/batch/many-0152.txt",
+ "object-tests/batch/many-0153.txt",
+ "object-tests/batch/many-0154.txt",
+ "object-tests/batch/many-0155.txt",
+ "object-tests/batch/many-0156.txt",
+ "object-tests/batch/many-0157.txt",
+ "object-tests/batch/many-0158.txt",
+ "object-tests/batch/many-0159.txt",
+ "object-tests/batch/many-0160.txt",
+ "object-tests/batch/many-0161.txt",
+ "object-tests/batch/many-0162.txt",
+ "object-tests/batch/many-0163.txt",
+ "object-tests/batch/many-0164.txt",
+ "object-tests/batch/many-0165.txt",
+ "object-tests/batch/many-0166.txt",
+ "object-tests/batch/many-0167.txt",
+ "object-tests/batch/many-0168.txt",
+ "object-tests/batch/many-0169.txt",
+ "object-tests/batch/many-0170.txt",
+ "object-tests/batch/many-0171.txt",
+ "object-tests/batch/many-0172.txt",
+ "object-tests/batch/many-0173.txt",
+ "object-tests/batch/many-0174.txt",
+ "object-tests/batch/many-0175.txt",
+ "object-tests/batch/many-0176.txt",
+ "object-tests/batch/many-0177.txt",
+ "object-tests/batch/many-0178.txt",
+ "object-tests/batch/many-0179.txt",
+ "object-tests/batch/many-0180.txt",
+ "object-tests/batch/many-0181.txt",
+ "object-tests/batch/many-0182.txt",
+ "object-tests/batch/many-0183.txt",
+ "object-tests/batch/many-0184.txt",
+ "object-tests/batch/many-0185.txt",
+ "object-tests/batch/many-0186.txt",
+ "object-tests/batch/many-0187.txt",
+ "object-tests/batch/many-0188.txt",
+ "object-tests/batch/many-0189.txt",
+ "object-tests/batch/many-0190.txt",
+ "object-tests/batch/many-0191.txt",
+ "object-tests/batch/many-0192.txt",
+ "object-tests/batch/many-0193.txt",
+ "object-tests/batch/many-0194.txt",
+ "object-tests/batch/many-0195.txt",
+ "object-tests/batch/many-0196.txt",
+ "object-tests/batch/many-0197.txt",
+ "object-tests/batch/many-0198.txt",
+ "object-tests/batch/many-0199.txt",
+ "object-tests/batch/many-0200.txt",
+ "object-tests/batch/many-0201.txt",
+ "object-tests/batch/many-0202.txt",
+ "object-tests/batch/many-0203.txt",
+ "object-tests/batch/many-0204.txt",
+ "object-tests/batch/many-0205.txt",
+ "object-tests/batch/many-0206.txt",
+ "object-tests/batch/many-0207.txt",
+ "object-tests/batch/many-0208.txt",
+ "object-tests/batch/many-0209.txt",
+ "object-tests/batch/many-0210.txt",
+ "object-tests/batch/many-0211.txt",
+ "object-tests/batch/many-0212.txt",
+ "object-tests/batch/many-0213.txt",
+ "object-tests/batch/many-0214.txt",
+ "object-tests/batch/many-0215.txt",
+ "object-tests/batch/many-0216.txt",
+ "object-tests/batch/many-0217.txt",
+ "object-tests/batch/many-0218.txt",
+ "object-tests/batch/many-0219.txt",
+ "object-tests/batch/many-0220.txt",
+ "object-tests/batch/many-0221.txt",
+ "object-tests/batch/many-0222.txt",
+ "object-tests/batch/many-0223.txt",
+ "object-tests/batch/many-0224.txt",
+ "object-tests/batch/many-0225.txt",
+ "object-tests/batch/many-0226.txt",
+ "object-tests/batch/many-0227.txt",
+ "object-tests/batch/many-0228.txt",
+ "object-tests/batch/many-0229.txt",
+ "object-tests/batch/many-0230.txt",
+ "object-tests/batch/many-0231.txt",
+ "object-tests/batch/many-0232.txt",
+ "object-tests/batch/many-0233.txt",
+ "object-tests/batch/many-0234.txt",
+ "object-tests/batch/many-0235.txt",
+ "object-tests/batch/many-0236.txt",
+ "object-tests/batch/many-0237.txt",
+ "object-tests/batch/many-0238.txt",
+ "object-tests/batch/many-0239.txt",
+ "object-tests/batch/many-0240.txt",
+ "object-tests/batch/many-0241.txt",
+ "object-tests/batch/many-0242.txt",
+ "object-tests/batch/many-0243.txt",
+ "object-tests/batch/many-0244.txt",
+ "object-tests/batch/many-0245.txt",
+ "object-tests/batch/many-0246.txt",
+ "object-tests/batch/many-0247.txt",
+ "object-tests/batch/many-0248.txt",
+ "object-tests/batch/many-0249.txt",
+ "object-tests/batch/many-0250.txt",
+ "object-tests/batch/many-0251.txt",
+ "object-tests/batch/many-0252.txt",
+ "object-tests/batch/many-0253.txt",
+ "object-tests/batch/many-0254.txt",
+ "object-tests/batch/many-0255.txt",
+ "object-tests/batch/many-0256.txt",
+ "object-tests/batch/many-0257.txt",
+ "object-tests/batch/many-0258.txt",
+ "object-tests/batch/many-0259.txt",
+ "object-tests/batch/many-0260.txt",
+ "object-tests/batch/many-0261.txt",
+ "object-tests/batch/many-0262.txt",
+ "object-tests/batch/many-0263.txt",
+ "object-tests/batch/many-0264.txt",
+ "object-tests/batch/many-0265.txt",
+ "object-tests/batch/many-0266.txt",
+ "object-tests/batch/many-0267.txt",
+ "object-tests/batch/many-0268.txt",
+ "object-tests/batch/many-0269.txt",
+ "object-tests/batch/many-0270.txt",
+ "object-tests/batch/many-0271.txt",
+ "object-tests/batch/many-0272.txt",
+ "object-tests/batch/many-0273.txt",
+ "object-tests/batch/many-0274.txt",
+ "object-tests/batch/many-0275.txt",
+ "object-tests/batch/many-0276.txt",
+ "object-tests/batch/many-0277.txt",
+ "object-tests/batch/many-0278.txt",
+ "object-tests/batch/many-0279.txt",
+ "object-tests/batch/many-0280.txt",
+ "object-tests/batch/many-0281.txt",
+ "object-tests/batch/many-0282.txt",
+ "object-tests/batch/many-0283.txt",
+ "object-tests/batch/many-0284.txt",
+ "object-tests/batch/many-0285.txt",
+ "object-tests/batch/many-0286.txt",
+ "object-tests/batch/many-0287.txt",
+ "object-tests/batch/many-0288.txt",
+ "object-tests/batch/many-0289.txt",
+ "object-tests/batch/many-0290.txt",
+ "object-tests/batch/many-0291.txt",
+ "object-tests/batch/many-0292.txt",
+ "object-tests/batch/many-0293.txt",
+ "object-tests/batch/many-0294.txt",
+ "object-tests/batch/many-0295.txt",
+ "object-tests/batch/many-0296.txt",
+ "object-tests/batch/many-0297.txt",
+ "object-tests/batch/many-0298.txt",
+ "object-tests/batch/many-0299.txt",
+ "object-tests/batch/many-0300.txt",
+ "object-tests/batch/many-0301.txt",
+ "object-tests/batch/many-0302.txt",
+ "object-tests/batch/many-0303.txt",
+ "object-tests/batch/many-0304.txt",
+ "object-tests/batch/many-0305.txt",
+ "object-tests/batch/many-0306.txt",
+ "object-tests/batch/many-0307.txt",
+ "object-tests/batch/many-0308.txt",
+ "object-tests/batch/many-0309.txt",
+ "object-tests/batch/many-0310.txt",
+ "object-tests/batch/many-0311.txt",
+ "object-tests/batch/many-0312.txt",
+ "object-tests/batch/many-0313.txt",
+ "object-tests/batch/many-0314.txt",
+ "object-tests/batch/many-0315.txt",
+ "object-tests/batch/many-0316.txt",
+ "object-tests/batch/many-0317.txt",
+ "object-tests/batch/many-0318.txt",
+ "object-tests/batch/many-0319.txt",
+ "object-tests/batch/many-0320.txt",
+ "object-tests/batch/many-0321.txt",
+ "object-tests/batch/many-0322.txt",
+ "object-tests/batch/many-0323.txt",
+ "object-tests/batch/many-0324.txt",
+ "object-tests/batch/many-0325.txt",
+ "object-tests/batch/many-0326.txt",
+ "object-tests/batch/many-0327.txt",
+ "object-tests/batch/many-0328.txt",
+ "object-tests/batch/many-0329.txt",
+ "object-tests/batch/many-0330.txt",
+ "object-tests/batch/many-0331.txt",
+ "object-tests/batch/many-0332.txt",
+ "object-tests/batch/many-0333.txt",
+ "object-tests/batch/many-0334.txt",
+ "object-tests/batch/many-0335.txt",
+ "object-tests/batch/many-0336.txt",
+ "object-tests/batch/many-0337.txt",
+ "object-tests/batch/many-0338.txt",
+ "object-tests/batch/many-0339.txt",
+ "object-tests/batch/many-0340.txt",
+ "object-tests/batch/many-0341.txt",
+ "object-tests/batch/many-0342.txt",
+ "object-tests/batch/many-0343.txt",
+ "object-tests/batch/many-0344.txt",
+ "object-tests/batch/many-0345.txt",
+ "object-tests/batch/many-0346.txt",
+ "object-tests/batch/many-0347.txt",
+ "object-tests/batch/many-0348.txt",
+ "object-tests/batch/many-0349.txt",
+ "object-tests/batch/many-0350.txt",
+ "object-tests/batch/many-0351.txt",
+ "object-tests/batch/many-0352.txt",
+ "object-tests/batch/many-0353.txt",
+ "object-tests/batch/many-0354.txt",
+ "object-tests/batch/many-0355.txt",
+ "object-tests/batch/many-0356.txt",
+ "object-tests/batch/many-0357.txt",
+ "object-tests/batch/many-0358.txt",
+ "object-tests/batch/many-0359.txt",
+ "object-tests/batch/many-0360.txt",
+ "object-tests/batch/many-0361.txt",
+ "object-tests/batch/many-0362.txt",
+ "object-tests/batch/many-0363.txt",
+ "object-tests/batch/many-0364.txt",
+ "object-tests/batch/many-0365.txt",
+ "object-tests/batch/many-0366.txt",
+ "object-tests/batch/many-0367.txt",
+ "object-tests/batch/many-0368.txt",
+ "object-tests/batch/many-0369.txt",
+ "object-tests/batch/many-0370.txt",
+ "object-tests/batch/many-0371.txt",
+ "object-tests/batch/many-0372.txt",
+ "object-tests/batch/many-0373.txt",
+ "object-tests/batch/many-0374.txt",
+ "object-tests/batch/many-0375.txt",
+ "object-tests/batch/many-0376.txt",
+ "object-tests/batch/many-0377.txt",
+ "object-tests/batch/many-0378.txt",
+ "object-tests/batch/many-0379.txt",
+ "object-tests/batch/many-0380.txt",
+ "object-tests/batch/many-0381.txt",
+ "object-tests/batch/many-0382.txt",
+ "object-tests/batch/many-0383.txt",
+ "object-tests/batch/many-0384.txt",
+ "object-tests/batch/many-0385.txt",
+ "object-tests/batch/many-0386.txt",
+ "object-tests/batch/many-0387.txt",
+ "object-tests/batch/many-0388.txt",
+ "object-tests/batch/many-0389.txt",
+ "object-tests/batch/many-0390.txt",
+ "object-tests/batch/many-0391.txt",
+ "object-tests/batch/many-0392.txt",
+ "object-tests/batch/many-0393.txt",
+ "object-tests/batch/many-0394.txt",
+ "object-tests/batch/many-0395.txt",
+ "object-tests/batch/many-0396.txt",
+ "object-tests/batch/many-0397.txt",
+ "object-tests/batch/many-0398.txt",
+ "object-tests/batch/many-0399.txt",
+ "object-tests/batch/many-0400.txt",
+ "object-tests/batch/many-0401.txt",
+ "object-tests/batch/many-0402.txt",
+ "object-tests/batch/many-0403.txt",
+ "object-tests/batch/many-0404.txt",
+ "object-tests/batch/many-0405.txt",
+ "object-tests/batch/many-0406.txt",
+ "object-tests/batch/many-0407.txt",
+ "object-tests/batch/many-0408.txt",
+ "object-tests/batch/many-0409.txt",
+ "object-tests/batch/many-0410.txt",
+ "object-tests/batch/many-0411.txt",
+ "object-tests/batch/many-0412.txt",
+ "object-tests/batch/many-0413.txt",
+ "object-tests/batch/many-0414.txt",
+ "object-tests/batch/many-0415.txt",
+ "object-tests/batch/many-0416.txt",
+ "object-tests/batch/many-0417.txt",
+ "object-tests/batch/many-0418.txt",
+ "object-tests/batch/many-0419.txt",
+ "object-tests/batch/many-0420.txt",
+ "object-tests/batch/many-0421.txt",
+ "object-tests/batch/many-0422.txt",
+ "object-tests/batch/many-0423.txt",
+ "object-tests/batch/many-0424.txt",
+ "object-tests/batch/many-0425.txt",
+ "object-tests/batch/many-0426.txt",
+ "object-tests/batch/many-0427.txt",
+ "object-tests/batch/many-0428.txt",
+ "object-tests/batch/many-0429.txt",
+ "object-tests/batch/many-0430.txt",
+ "object-tests/batch/many-0431.txt",
+ "object-tests/batch/many-0432.txt",
+ "object-tests/batch/many-0433.txt",
+ "object-tests/batch/many-0434.txt",
+ "object-tests/batch/many-0435.txt",
+ "object-tests/batch/many-0436.txt",
+ "object-tests/batch/many-0437.txt",
+ "object-tests/batch/many-0438.txt",
+ "object-tests/batch/many-0439.txt",
+ "object-tests/batch/many-0440.txt",
+ "object-tests/batch/many-0441.txt",
+ "object-tests/batch/many-0442.txt",
+ "object-tests/batch/many-0443.txt",
+ "object-tests/batch/many-0444.txt",
+ "object-tests/batch/many-0445.txt",
+ "object-tests/batch/many-0446.txt",
+ "object-tests/batch/many-0447.txt",
+ "object-tests/batch/many-0448.txt",
+ "object-tests/batch/many-0449.txt",
+ "object-tests/batch/many-0450.txt",
+ "object-tests/batch/many-0451.txt",
+ "object-tests/batch/many-0452.txt",
+ "object-tests/batch/many-0453.txt",
+ "object-tests/batch/many-0454.txt",
+ "object-tests/batch/many-0455.txt",
+ "object-tests/batch/many-0456.txt",
+ "object-tests/batch/many-0457.txt",
+ "object-tests/batch/many-0458.txt",
+ "object-tests/batch/many-0459.txt",
+ "object-tests/batch/many-0460.txt",
+ "object-tests/batch/many-0461.txt",
+ "object-tests/batch/many-0462.txt",
+ "object-tests/batch/many-0463.txt",
+ "object-tests/batch/many-0464.txt",
+ "object-tests/batch/many-0465.txt",
+ "object-tests/batch/many-0466.txt",
+ "object-tests/batch/many-0467.txt",
+ "object-tests/batch/many-0468.txt",
+ "object-tests/batch/many-0469.txt",
+ "object-tests/batch/many-0470.txt",
+ "object-tests/batch/many-0471.txt",
+ "object-tests/batch/many-0472.txt",
+ "object-tests/batch/many-0473.txt",
+ "object-tests/batch/many-0474.txt",
+ "object-tests/batch/many-0475.txt",
+ "object-tests/batch/many-0476.txt",
+ "object-tests/batch/many-0477.txt",
+ "object-tests/batch/many-0478.txt",
+ "object-tests/batch/many-0479.txt",
+ "object-tests/batch/many-0480.txt",
+ "object-tests/batch/many-0481.txt",
+ "object-tests/batch/many-0482.txt",
+ "object-tests/batch/many-0483.txt",
+ "object-tests/batch/many-0484.txt",
+ "object-tests/batch/many-0485.txt",
+ "object-tests/batch/many-0486.txt",
+ "object-tests/batch/many-0487.txt",
+ "object-tests/batch/many-0488.txt",
+ "object-tests/batch/many-0489.txt",
+ "object-tests/batch/many-0490.txt",
+ "object-tests/batch/many-0491.txt",
+ "object-tests/batch/many-0492.txt",
+ "object-tests/batch/many-0493.txt",
+ "object-tests/batch/many-0494.txt",
+ "object-tests/batch/many-0495.txt",
+ "object-tests/batch/many-0496.txt",
+ "object-tests/batch/many-0497.txt",
+ "object-tests/batch/many-0498.txt",
+ "object-tests/batch/many-0499.txt",
+ "object-tests/batch/many-0500.txt",
+ "object-tests/batch/many-0501.txt",
+ "object-tests/batch/many-0502.txt",
+ "object-tests/batch/many-0503.txt",
+ "object-tests/batch/many-0504.txt",
+ "object-tests/batch/many-0505.txt",
+ "object-tests/batch/many-0506.txt",
+ "object-tests/batch/many-0507.txt",
+ "object-tests/batch/many-0508.txt",
+ "object-tests/batch/many-0509.txt",
+ "object-tests/batch/many-0510.txt",
+ "object-tests/batch/many-0511.txt",
+ "object-tests/batch/many-0512.txt",
+ "object-tests/batch/many-0513.txt",
+ "object-tests/batch/many-0514.txt",
+ "object-tests/batch/many-0515.txt",
+ "object-tests/batch/many-0516.txt",
+ "object-tests/batch/many-0517.txt",
+ "object-tests/batch/many-0518.txt",
+ "object-tests/batch/many-0519.txt",
+ "object-tests/batch/many-0520.txt",
+ "object-tests/batch/many-0521.txt",
+ "object-tests/batch/many-0522.txt",
+ "object-tests/batch/many-0523.txt",
+ "object-tests/batch/many-0524.txt",
+ "object-tests/batch/many-0525.txt",
+ "object-tests/batch/many-0526.txt",
+ "object-tests/batch/many-0527.txt",
+ "object-tests/batch/many-0528.txt",
+ "object-tests/batch/many-0529.txt",
+ "object-tests/batch/many-0530.txt",
+ "object-tests/batch/many-0531.txt",
+ "object-tests/batch/many-0532.txt",
+ "object-tests/batch/many-0533.txt",
+ "object-tests/batch/many-0534.txt",
+ "object-tests/batch/many-0535.txt",
+ "object-tests/batch/many-0536.txt",
+ "object-tests/batch/many-0537.txt",
+ "object-tests/batch/many-0538.txt",
+ "object-tests/batch/many-0539.txt",
+ "object-tests/batch/many-0540.txt",
+ "object-tests/batch/many-0541.txt",
+ "object-tests/batch/many-0542.txt",
+ "object-tests/batch/many-0543.txt",
+ "object-tests/batch/many-0544.txt",
+ "object-tests/batch/many-0545.txt",
+ "object-tests/batch/many-0546.txt",
+ "object-tests/batch/many-0547.txt",
+ "object-tests/batch/many-0548.txt",
+ "object-tests/batch/many-0549.txt",
+ "object-tests/batch/many-0550.txt",
+ "object-tests/batch/many-0551.txt",
+ "object-tests/batch/many-0552.txt",
+ "object-tests/batch/many-0553.txt",
+ "object-tests/batch/many-0554.txt",
+ "object-tests/batch/many-0555.txt",
+ "object-tests/batch/many-0556.txt",
+ "object-tests/batch/many-0557.txt",
+ "object-tests/batch/many-0558.txt",
+ "object-tests/batch/many-0559.txt",
+ "object-tests/batch/many-0560.txt",
+ "object-tests/batch/many-0561.txt",
+ "object-tests/batch/many-0562.txt",
+ "object-tests/batch/many-0563.txt",
+ "object-tests/batch/many-0564.txt",
+ "object-tests/batch/many-0565.txt",
+ "object-tests/batch/many-0566.txt",
+ "object-tests/batch/many-0567.txt",
+ "object-tests/batch/many-0568.txt",
+ "object-tests/batch/many-0569.txt",
+ "object-tests/batch/many-0570.txt",
+ "object-tests/batch/many-0571.txt",
+ "object-tests/batch/many-0572.txt",
+ "object-tests/batch/many-0573.txt",
+ "object-tests/batch/many-0574.txt",
+ "object-tests/batch/many-0575.txt",
+ "object-tests/batch/many-0576.txt",
+ "object-tests/batch/many-0577.txt",
+ "object-tests/batch/many-0578.txt",
+ "object-tests/batch/many-0579.txt",
+ "object-tests/batch/many-0580.txt",
+ "object-tests/batch/many-0581.txt",
+ "object-tests/batch/many-0582.txt",
+ "object-tests/batch/many-0583.txt",
+ "object-tests/batch/many-0584.txt",
+ "object-tests/batch/many-0585.txt",
+ "object-tests/batch/many-0586.txt",
+ "object-tests/batch/many-0587.txt",
+ "object-tests/batch/many-0588.txt",
+ "object-tests/batch/many-0589.txt",
+ "object-tests/batch/many-0590.txt",
+ "object-tests/batch/many-0591.txt",
+ "object-tests/batch/many-0592.txt",
+ "object-tests/batch/many-0593.txt",
+ "object-tests/batch/many-0594.txt",
+ "object-tests/batch/many-0595.txt",
+ "object-tests/batch/many-0596.txt",
+ "object-tests/batch/many-0597.txt",
+ "object-tests/batch/many-0598.txt",
+ "object-tests/batch/many-0599.txt",
+ "object-tests/batch/many-0600.txt",
+ "object-tests/batch/many-0601.txt",
+ "object-tests/batch/many-0602.txt",
+ "object-tests/batch/many-0603.txt",
+ "object-tests/batch/many-0604.txt",
+ "object-tests/batch/many-0605.txt",
+ "object-tests/batch/many-0606.txt",
+ "object-tests/batch/many-0607.txt",
+ "object-tests/batch/many-0608.txt",
+ "object-tests/batch/many-0609.txt",
+ "object-tests/batch/many-0610.txt",
+ "object-tests/batch/many-0611.txt",
+ "object-tests/batch/many-0612.txt",
+ "object-tests/batch/many-0613.txt",
+ "object-tests/batch/many-0614.txt",
+ "object-tests/batch/many-0615.txt",
+ "object-tests/batch/many-0616.txt",
+ "object-tests/batch/many-0617.txt",
+ "object-tests/batch/many-0618.txt",
+ "object-tests/batch/many-0619.txt",
+ "object-tests/batch/many-0620.txt",
+ "object-tests/batch/many-0621.txt",
+ "object-tests/batch/many-0622.txt",
+ "object-tests/batch/many-0623.txt",
+ "object-tests/batch/many-0624.txt",
+ "object-tests/batch/many-0625.txt",
+ "object-tests/batch/many-0626.txt",
+ "object-tests/batch/many-0627.txt",
+ "object-tests/batch/many-0628.txt",
+ "object-tests/batch/many-0629.txt",
+ "object-tests/batch/many-0630.txt",
+ "object-tests/batch/many-0631.txt",
+ "object-tests/batch/many-0632.txt",
+ "object-tests/batch/many-0633.txt",
+ "object-tests/batch/many-0634.txt",
+ "object-tests/batch/many-0635.txt",
+ "object-tests/batch/many-0636.txt",
+ "object-tests/batch/many-0637.txt",
+ "object-tests/batch/many-0638.txt",
+ "object-tests/batch/many-0639.txt",
+ "object-tests/batch/many-0640.txt",
+ "object-tests/batch/many-0641.txt",
+ "object-tests/batch/many-0642.txt",
+ "object-tests/batch/many-0643.txt",
+ "object-tests/batch/many-0644.txt",
+ "object-tests/batch/many-0645.txt",
+ "object-tests/batch/many-0646.txt",
+ "object-tests/batch/many-0647.txt",
+ "object-tests/batch/many-0648.txt",
+ "object-tests/batch/many-0649.txt",
+ "object-tests/batch/many-0650.txt",
+ "object-tests/batch/many-0651.txt",
+ "object-tests/batch/many-0652.txt",
+ "object-tests/batch/many-0653.txt",
+ "object-tests/batch/many-0654.txt",
+ "object-tests/batch/many-0655.txt",
+ "object-tests/batch/many-0656.txt",
+ "object-tests/batch/many-0657.txt",
+ "object-tests/batch/many-0658.txt",
+ "object-tests/batch/many-0659.txt",
+ "object-tests/batch/many-0660.txt",
+ "object-tests/batch/many-0661.txt",
+ "object-tests/batch/many-0662.txt",
+ "object-tests/batch/many-0663.txt",
+ "object-tests/batch/many-0664.txt",
+ "object-tests/batch/many-0665.txt",
+ "object-tests/batch/many-0666.txt",
+ "object-tests/batch/many-0667.txt",
+ "object-tests/batch/many-0668.txt",
+ "object-tests/batch/many-0669.txt",
+ "object-tests/batch/many-0670.txt",
+ "object-tests/batch/many-0671.txt",
+ "object-tests/batch/many-0672.txt",
+ "object-tests/batch/many-0673.txt",
+ "object-tests/batch/many-0674.txt",
+ "object-tests/batch/many-0675.txt",
+ "object-tests/batch/many-0676.txt",
+ "object-tests/batch/many-0677.txt",
+ "object-tests/batch/many-0678.txt",
+ "object-tests/batch/many-0679.txt",
+ "object-tests/batch/many-0680.txt",
+ "object-tests/batch/many-0681.txt",
+ "object-tests/batch/many-0682.txt",
+ "object-tests/batch/many-0683.txt",
+ "object-tests/batch/many-0684.txt",
+ "object-tests/batch/many-0685.txt",
+ "object-tests/batch/many-0686.txt",
+ "object-tests/batch/many-0687.txt",
+ "object-tests/batch/many-0688.txt",
+ "object-tests/batch/many-0689.txt",
+ "object-tests/batch/many-0690.txt",
+ "object-tests/batch/many-0691.txt",
+ "object-tests/batch/many-0692.txt",
+ "object-tests/batch/many-0693.txt",
+ "object-tests/batch/many-0694.txt",
+ "object-tests/batch/many-0695.txt",
+ "object-tests/batch/many-0696.txt",
+ "object-tests/batch/many-0697.txt",
+ "object-tests/batch/many-0698.txt",
+ "object-tests/batch/many-0699.txt",
+ "object-tests/batch/many-0700.txt",
+ "object-tests/batch/many-0701.txt",
+ "object-tests/batch/many-0702.txt",
+ "object-tests/batch/many-0703.txt",
+ "object-tests/batch/many-0704.txt",
+ "object-tests/batch/many-0705.txt",
+ "object-tests/batch/many-0706.txt",
+ "object-tests/batch/many-0707.txt",
+ "object-tests/batch/many-0708.txt",
+ "object-tests/batch/many-0709.txt",
+ "object-tests/batch/many-0710.txt",
+ "object-tests/batch/many-0711.txt",
+ "object-tests/batch/many-0712.txt",
+ "object-tests/batch/many-0713.txt",
+ "object-tests/batch/many-0714.txt",
+ "object-tests/batch/many-0715.txt",
+ "object-tests/batch/many-0716.txt",
+ "object-tests/batch/many-0717.txt",
+ "object-tests/batch/many-0718.txt",
+ "object-tests/batch/many-0719.txt",
+ "object-tests/batch/many-0720.txt",
+ "object-tests/batch/many-0721.txt",
+ "object-tests/batch/many-0722.txt",
+ "object-tests/batch/many-0723.txt",
+ "object-tests/batch/many-0724.txt",
+ "object-tests/batch/many-0725.txt",
+ "object-tests/batch/many-0726.txt",
+ "object-tests/batch/many-0727.txt",
+ "object-tests/batch/many-0728.txt",
+ "object-tests/batch/many-0729.txt",
+ "object-tests/batch/many-0730.txt",
+ "object-tests/batch/many-0731.txt",
+ "object-tests/batch/many-0732.txt",
+ "object-tests/batch/many-0733.txt",
+ "object-tests/batch/many-0734.txt",
+ "object-tests/batch/many-0735.txt",
+ "object-tests/batch/many-0736.txt",
+ "object-tests/batch/many-0737.txt",
+ "object-tests/batch/many-0738.txt",
+ "object-tests/batch/many-0739.txt",
+ "object-tests/batch/many-0740.txt",
+ "object-tests/batch/many-0741.txt",
+ "object-tests/batch/many-0742.txt",
+ "object-tests/batch/many-0743.txt",
+ "object-tests/batch/many-0744.txt",
+ "object-tests/batch/many-0745.txt",
+ "object-tests/batch/many-0746.txt",
+ "object-tests/batch/many-0747.txt",
+ "object-tests/batch/many-0748.txt",
+ "object-tests/batch/many-0749.txt",
+ "object-tests/batch/many-0750.txt",
+ "object-tests/batch/many-0751.txt",
+ "object-tests/batch/many-0752.txt",
+ "object-tests/batch/many-0753.txt",
+ "object-tests/batch/many-0754.txt",
+ "object-tests/batch/many-0755.txt",
+ "object-tests/batch/many-0756.txt",
+ "object-tests/batch/many-0757.txt",
+ "object-tests/batch/many-0758.txt",
+ "object-tests/batch/many-0759.txt",
+ "object-tests/batch/many-0760.txt",
+ "object-tests/batch/many-0761.txt",
+ "object-tests/batch/many-0762.txt",
+ "object-tests/batch/many-0763.txt",
+ "object-tests/batch/many-0764.txt",
+ "object-tests/batch/many-0765.txt",
+ "object-tests/batch/many-0766.txt",
+ "object-tests/batch/many-0767.txt",
+ "object-tests/batch/many-0768.txt",
+ "object-tests/batch/many-0769.txt",
+ "object-tests/batch/many-0770.txt",
+ "object-tests/batch/many-0771.txt",
+ "object-tests/batch/many-0772.txt",
+ "object-tests/batch/many-0773.txt",
+ "object-tests/batch/many-0774.txt",
+ "object-tests/batch/many-0775.txt",
+ "object-tests/batch/many-0776.txt",
+ "object-tests/batch/many-0777.txt",
+ "object-tests/batch/many-0778.txt",
+ "object-tests/batch/many-0779.txt",
+ "object-tests/batch/many-0780.txt",
+ "object-tests/batch/many-0781.txt",
+ "object-tests/batch/many-0782.txt",
+ "object-tests/batch/many-0783.txt",
+ "object-tests/batch/many-0784.txt",
+ "object-tests/batch/many-0785.txt",
+ "object-tests/batch/many-0786.txt",
+ "object-tests/batch/many-0787.txt",
+ "object-tests/batch/many-0788.txt",
+ "object-tests/batch/many-0789.txt",
+ "object-tests/batch/many-0790.txt",
+ "object-tests/batch/many-0791.txt",
+ "object-tests/batch/many-0792.txt",
+ "object-tests/batch/many-0793.txt",
+ "object-tests/batch/many-0794.txt",
+ "object-tests/batch/many-0795.txt",
+ "object-tests/batch/many-0796.txt",
+ "object-tests/batch/many-0797.txt",
+ "object-tests/batch/many-0798.txt",
+ "object-tests/batch/many-0799.txt",
+ "object-tests/batch/many-0800.txt",
+ "object-tests/batch/many-0801.txt",
+ "object-tests/batch/many-0802.txt",
+ "object-tests/batch/many-0803.txt",
+ "object-tests/batch/many-0804.txt",
+ "object-tests/batch/many-0805.txt",
+ "object-tests/batch/many-0806.txt",
+ "object-tests/batch/many-0807.txt",
+ "object-tests/batch/many-0808.txt",
+ "object-tests/batch/many-0809.txt",
+ "object-tests/batch/many-0810.txt",
+ "object-tests/batch/many-0811.txt",
+ "object-tests/batch/many-0812.txt",
+ "object-tests/batch/many-0813.txt",
+ "object-tests/batch/many-0814.txt",
+ "object-tests/batch/many-0815.txt",
+ "object-tests/batch/many-0816.txt",
+ "object-tests/batch/many-0817.txt",
+ "object-tests/batch/many-0818.txt",
+ "object-tests/batch/many-0819.txt",
+ "object-tests/batch/many-0820.txt",
+ "object-tests/batch/many-0821.txt",
+ "object-tests/batch/many-0822.txt",
+ "object-tests/batch/many-0823.txt",
+ "object-tests/batch/many-0824.txt",
+ "object-tests/batch/many-0825.txt",
+ "object-tests/batch/many-0826.txt",
+ "object-tests/batch/many-0827.txt",
+ "object-tests/batch/many-0828.txt",
+ "object-tests/batch/many-0829.txt",
+ "object-tests/batch/many-0830.txt",
+ "object-tests/batch/many-0831.txt",
+ "object-tests/batch/many-0832.txt",
+ "object-tests/batch/many-0833.txt",
+ "object-tests/batch/many-0834.txt",
+ "object-tests/batch/many-0835.txt",
+ "object-tests/batch/many-0836.txt",
+ "object-tests/batch/many-0837.txt",
+ "object-tests/batch/many-0838.txt",
+ "object-tests/batch/many-0839.txt",
+ "object-tests/batch/many-0840.txt",
+ "object-tests/batch/many-0841.txt",
+ "object-tests/batch/many-0842.txt",
+ "object-tests/batch/many-0843.txt",
+ "object-tests/batch/many-0844.txt",
+ "object-tests/batch/many-0845.txt",
+ "object-tests/batch/many-0846.txt",
+ "object-tests/batch/many-0847.txt",
+ "object-tests/batch/many-0848.txt",
+ "object-tests/batch/many-0849.txt",
+ "object-tests/batch/many-0850.txt",
+ "object-tests/batch/many-0851.txt",
+ "object-tests/batch/many-0852.txt",
+ "object-tests/batch/many-0853.txt",
+ "object-tests/batch/many-0854.txt",
+ "object-tests/batch/many-0855.txt",
+ "object-tests/batch/many-0856.txt",
+ "object-tests/batch/many-0857.txt",
+ "object-tests/batch/many-0858.txt",
+ "object-tests/batch/many-0859.txt",
+ "object-tests/batch/many-0860.txt",
+ "object-tests/batch/many-0861.txt",
+ "object-tests/batch/many-0862.txt",
+ "object-tests/batch/many-0863.txt",
+ "object-tests/batch/many-0864.txt",
+ "object-tests/batch/many-0865.txt",
+ "object-tests/batch/many-0866.txt",
+ "object-tests/batch/many-0867.txt",
+ "object-tests/batch/many-0868.txt",
+ "object-tests/batch/many-0869.txt",
+ "object-tests/batch/many-0870.txt",
+ "object-tests/batch/many-0871.txt",
+ "object-tests/batch/many-0872.txt",
+ "object-tests/batch/many-0873.txt",
+ "object-tests/batch/many-0874.txt",
+ "object-tests/batch/many-0875.txt",
+ "object-tests/batch/many-0876.txt",
+ "object-tests/batch/many-0877.txt",
+ "object-tests/batch/many-0878.txt",
+ "object-tests/batch/many-0879.txt",
+ "object-tests/batch/many-0880.txt",
+ "object-tests/batch/many-0881.txt",
+ "object-tests/batch/many-0882.txt",
+ "object-tests/batch/many-0883.txt",
+ "object-tests/batch/many-0884.txt",
+ "object-tests/batch/many-0885.txt",
+ "object-tests/batch/many-0886.txt",
+ "object-tests/batch/many-0887.txt",
+ "object-tests/batch/many-0888.txt",
+ "object-tests/batch/many-0889.txt",
+ "object-tests/batch/many-0890.txt",
+ "object-tests/batch/many-0891.txt",
+ "object-tests/batch/many-0892.txt",
+ "object-tests/batch/many-0893.txt",
+ "object-tests/batch/many-0894.txt",
+ "object-tests/batch/many-0895.txt",
+ "object-tests/batch/many-0896.txt",
+ "object-tests/batch/many-0897.txt",
+ "object-tests/batch/many-0898.txt",
+ "object-tests/batch/many-0899.txt",
+ "object-tests/batch/many-0900.txt",
+ "object-tests/batch/many-0901.txt",
+ "object-tests/batch/many-0902.txt",
+ "object-tests/batch/many-0903.txt",
+ "object-tests/batch/many-0904.txt",
+ "object-tests/batch/many-0905.txt",
+ "object-tests/batch/many-0906.txt",
+ "object-tests/batch/many-0907.txt",
+ "object-tests/batch/many-0908.txt",
+ "object-tests/batch/many-0909.txt",
+ "object-tests/batch/many-0910.txt",
+ "object-tests/batch/many-0911.txt",
+ "object-tests/batch/many-0912.txt",
+ "object-tests/batch/many-0913.txt",
+ "object-tests/batch/many-0914.txt",
+ "object-tests/batch/many-0915.txt",
+ "object-tests/batch/many-0916.txt",
+ "object-tests/batch/many-0917.txt",
+ "object-tests/batch/many-0918.txt",
+ "object-tests/batch/many-0919.txt",
+ "object-tests/batch/many-0920.txt",
+ "object-tests/batch/many-0921.txt",
+ "object-tests/batch/many-0922.txt",
+ "object-tests/batch/many-0923.txt",
+ "object-tests/batch/many-0924.txt",
+ "object-tests/batch/many-0925.txt",
+ "object-tests/batch/many-0926.txt",
+ "object-tests/batch/many-0927.txt",
+ "object-tests/batch/many-0928.txt",
+ "object-tests/batch/many-0929.txt",
+ "object-tests/batch/many-0930.txt",
+ "object-tests/batch/many-0931.txt",
+ "object-tests/batch/many-0932.txt",
+ "object-tests/batch/many-0933.txt",
+ "object-tests/batch/many-0934.txt",
+ "object-tests/batch/many-0935.txt",
+ "object-tests/batch/many-0936.txt",
+ "object-tests/batch/many-0937.txt",
+ "object-tests/batch/many-0938.txt",
+ "object-tests/batch/many-0939.txt",
+ "object-tests/batch/many-0940.txt",
+ "object-tests/batch/many-0941.txt",
+ "object-tests/batch/many-0942.txt",
+ "object-tests/batch/many-0943.txt",
+ "object-tests/batch/many-0944.txt",
+ "object-tests/batch/many-0945.txt",
+ "object-tests/batch/many-0946.txt",
+ "object-tests/batch/many-0947.txt",
+ "object-tests/batch/many-0948.txt",
+ "object-tests/batch/many-0949.txt",
+ "object-tests/batch/many-0950.txt",
+ "object-tests/batch/many-0951.txt",
+ "object-tests/batch/many-0952.txt",
+ "object-tests/batch/many-0953.txt",
+ "object-tests/batch/many-0954.txt",
+ "object-tests/batch/many-0955.txt",
+ "object-tests/batch/many-0956.txt",
+ "object-tests/batch/many-0957.txt",
+ "object-tests/batch/many-0958.txt",
+ "object-tests/batch/many-0959.txt",
+ "object-tests/batch/many-0960.txt",
+ "object-tests/batch/many-0961.txt",
+ "object-tests/batch/many-0962.txt",
+ "object-tests/batch/many-0963.txt",
+ "object-tests/batch/many-0964.txt",
+ "object-tests/batch/many-0965.txt",
+ "object-tests/batch/many-0966.txt",
+ "object-tests/batch/many-0967.txt",
+ "object-tests/batch/many-0968.txt",
+ "object-tests/batch/many-0969.txt",
+ "object-tests/batch/many-0970.txt",
+ "object-tests/batch/many-0971.txt",
+ "object-tests/batch/many-0972.txt",
+ "object-tests/batch/many-0973.txt",
+ "object-tests/batch/many-0974.txt",
+ "object-tests/batch/many-0975.txt",
+ "object-tests/batch/many-0976.txt",
+ "object-tests/batch/many-0977.txt",
+ "object-tests/batch/many-0978.txt",
+ "object-tests/batch/many-0979.txt",
+ "object-tests/batch/many-0980.txt",
+ "object-tests/batch/many-0981.txt",
+ "object-tests/batch/many-0982.txt",
+ "object-tests/batch/many-0983.txt",
+ "object-tests/batch/many-0984.txt",
+ "object-tests/batch/many-0985.txt",
+ "object-tests/batch/many-0986.txt",
+ "object-tests/batch/many-0987.txt",
+ "object-tests/batch/many-0988.txt",
+ "object-tests/batch/many-0989.txt",
+ "object-tests/batch/many-0990.txt",
+ "object-tests/batch/many-0991.txt",
+ "object-tests/batch/many-0992.txt",
+ "object-tests/batch/many-0993.txt",
+ "object-tests/batch/many-0994.txt",
+ "object-tests/batch/many-0995.txt",
+ "object-tests/batch/many-0996.txt",
+ "object-tests/batch/many-0997.txt",
+ "object-tests/batch/many-0998.txt",
+ "object-tests/batch/many-0999.txt",
+ "object-tests/batch/many-1000.txt"
+ ],
+ "op": "delete_many"
},
"exchanges": [
{
@@ -66187,7 +101949,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -66195,133 +101957,60 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/append/object.log"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "AppendBlob"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 201,
- "headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
- },
- "body": {
- "encoding": "empty"
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/put-leased-if-match-without-lease-id",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Refuse a write to a leased object whose If-Match holds but that names no lease ID",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
- ],
- "call": {
- "body_base64": "c2Vjb25k",
- "if_match": "\"fixture-etag\"",
- "key": "object-tests/leases/object.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
+ "value": "/fixture"
}
},
{
- "at": "/path",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "is": "xml",
+ "value": ""
}
},
{
- "at": "/body_base64",
+ "at": "/query/delete",
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/x-amz-checksum-crc64nvme",
"optional": false,
"rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
}
},
{
- "at": "/headers/if-match",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "\"fixture-etag\""
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "LeaseIdMissing"
+ }
},
"body": {
"encoding": "utf8",
- "data": "LeaseIdMissingFixture error"
- }
+ "data": "\nMalformedXMLFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -66341,7 +102030,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": 400
}
},
{
@@ -66349,25 +102038,65 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "LeaseIdMissing"
+ "value": "MalformedXML"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "keys"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "MalformedXML"
+ }
+ }
+ ]
},
{
- "id": "operations/azure-hns/put-leased-with-lease-id",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-slow-down",
+ "profile": "s3",
"lane": "core",
- "purpose": "Write to a leased object with its lease ID",
+ "purpose": "Report a 503 SlowDown answer as an error, after at most 5 retries",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
],
+ "origin": "transient",
"call": {
- "body_base64": "c2Vjb25k",
- "key": "object-tests/leases/object.txt",
- "lease_id": "11111111-2222-3333-4444-555555555555",
- "op": "put"
+ "key": "object-tests/remove/present.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -66379,7 +102108,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -66387,7 +102116,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "/fixture/object-tests/remove/present.txt"
}
},
{
@@ -66395,172 +102124,82 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
- }
- },
- {
- "at": "/headers/x-ms-lease-id",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "11111111-2222-3333-4444-555555555555"
+ "value": ""
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 503,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ }
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/put-leased-without-lease-id",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Refuse a write to a leased object that names no lease ID",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
- ],
- "call": {
- "body_base64": "c2Vjb25k",
- "key": "object-tests/leases/object.txt",
- "op": "put"
- },
- "exchanges": [
+ },
{
"alternatives": [
{
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
- }
- },
+ "request": [
{
- "at": "/path",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "DELETE"
}
},
{
- "at": "/body_base64",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
+ "value": "/fixture/object-tests/remove/present.txt"
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "LeaseIdMissing"
+ }
},
"body": {
"encoding": "utf8",
- "data": "LeaseIdMissingFixture error"
- }
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "LeaseIdMissing"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/lease-break",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Break a lease at once",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
- ],
- "call": {
- "action": "break",
- "break_period": 0,
- "key": "object-tests/leases/object.txt",
- "op": "azure.lease"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -66570,7 +102209,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -66578,7 +102217,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "/fixture/object-tests/remove/present.txt"
}
},
{
@@ -66588,79 +102227,81 @@
"is": "equal",
"value": ""
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
+ "framing": "chunked"
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "lease"
+ "value": "DELETE"
}
},
{
- "at": "/headers/x-ms-lease-action",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "break"
+ "value": "/fixture/object-tests/remove/present.txt"
}
},
{
- "at": "/headers/x-ms-lease-break-period",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "0"
+ "value": ""
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 202,
+ "status": 503,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-time": "0"
+ }
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/lease-release",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Release a lease",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
- ],
- "call": {
- "action": "release",
- "key": "object-tests/leases/object.txt",
- "lease_id": "11111111-2222-3333-4444-555555555555",
- "op": "azure.lease"
- },
- "exchanges": [
+ ],
+ "optional": true
+ },
{
"alternatives": [
{
@@ -66670,7 +102311,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -66678,7 +102319,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "/fixture/object-tests/remove/present.txt"
}
},
{
@@ -66688,49 +102329,80 @@
"is": "equal",
"value": ""
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
+ "framing": "chunked"
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "lease"
+ "value": "DELETE"
}
},
{
- "at": "/headers/x-ms-lease-action",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "release"
+ "value": "/fixture/object-tests/remove/present.txt"
}
},
{
- "at": "/headers/x-ms-lease-id",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "11111111-2222-3333-4444-555555555555"
+ "value": ""
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -66739,26 +102411,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 503
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "SlowDown"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/lease-acquire-leased",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-bucket-missing",
+ "profile": "s3",
"lane": "core",
- "purpose": "Refuse a second lease while another lease holds the object",
+ "purpose": "delete bucket missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "action": "acquire",
- "duration": 15,
- "key": "object-tests/leases/object.txt",
- "op": "azure.lease",
- "proposed_lease_id": "66666666-7777-8888-9999-000000000000"
+ "key": "object.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -66770,7 +102455,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -66778,7 +102463,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "/fixture/object.txt"
}
},
{
@@ -66788,55 +102473,25 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "lease"
- }
- },
- {
- "at": "/headers/x-ms-lease-action",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "acquire"
- }
- },
- {
- "at": "/headers/x-ms-lease-duration",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "15"
- }
- },
- {
- "at": "/headers/x-ms-proposed-lease-id",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "66666666-7777-8888-9999-000000000000"
- }
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "LeaseAlreadyPresent"
+ }
},
"body": {
"encoding": "utf8",
- "data": "LeaseAlreadyPresentFixture error"
- }
+ "data": "\nNoSuchBucketFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -66856,7 +102511,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 409
+ "value": 404
}
},
{
@@ -66864,26 +102519,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "LeaseAlreadyPresent"
+ "value": "NoSuchBucket"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/lease-acquire",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-if-match-current",
+ "profile": "s3",
"lane": "core",
- "purpose": "Acquire a lease on an object with a proposed lease ID",
+ "purpose": "delete if match current",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/lease-blob"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "action": "acquire",
- "duration": 15,
- "key": "object-tests/leases/object.txt",
- "op": "azure.lease",
- "proposed_lease_id": "11111111-2222-3333-4444-555555555555"
+ "if_match": "\"fixture-6c30b210f0a8\"",
+ "key": "object-tests/remove/conditional.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -66895,7 +102556,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -66903,7 +102564,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/leases/object.txt"
+ "value": "/fixture/object-tests/remove/conditional.txt"
}
},
{
@@ -66915,52 +102576,29 @@
}
},
{
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "lease"
- }
- },
- {
- "at": "/headers/x-ms-lease-action",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "acquire"
- }
- },
- {
- "at": "/headers/x-ms-lease-duration",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "15"
- }
- },
- {
- "at": "/headers/x-ms-proposed-lease-id",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "11111111-2222-3333-4444-555555555555"
+ "value": "\"fixture-6c30b210f0a8\""
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 204,
"headers": {
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-lease-id": "11111111-2222-3333-4444-555555555555"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "empty"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -66975,33 +102613,21 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/lease_id",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "11111111-2222-3333-4444-555555555555"
- }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-with-tags",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-missing",
+ "profile": "s3",
"lane": "core",
- "purpose": "Write an object with tags, which an HNS account does not support",
+ "purpose": "delete missing",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "Zmlyc3Q=",
- "key": "object-tests/tags/object.txt",
- "op": "put",
- "tags": {
- "project": "object-tests"
- }
+ "key": "object-tests/remove/absent.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -67013,7 +102639,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -67021,7 +102647,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/tags/object.txt"
+ "value": "/fixture/object-tests/remove/absent.txt"
}
},
{
@@ -67029,40 +102655,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "Zmlyc3Q="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
- }
- },
- {
- "at": "/headers/x-ms-tags",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "project=object-tests"
+ "value": ""
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 204,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -67075,39 +102686,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 409
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/get-tags",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-precondition-failed",
+ "profile": "s3",
"lane": "core",
- "purpose": "Read the tags of an object, which an HNS account does not support",
+ "purpose": "delete precondition failed",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/get-blob-tags"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/tags/object.txt",
- "op": "azure.get_tags"
+ "if_match": "\"fixture-db71b2c0257c\"",
+ "key": "object-tests/remove/conditional.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -67119,7 +102715,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "DELETE"
}
},
{
@@ -67127,7 +102723,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/tags/object.txt"
+ "value": "/fixture/object-tests/remove/conditional.txt"
}
},
{
@@ -67139,29 +102735,31 @@
}
},
{
- "at": "/query/comp",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "tags"
+ "value": "\"fixture-db71b2c0257c\""
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "InvalidQueryParameterValue"
+ }
},
"body": {
"encoding": "utf8",
- "data": "InvalidQueryParameterValueFixture error"
- }
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -67181,7 +102779,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": 412
}
},
{
@@ -67189,26 +102787,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidQueryParameterValue"
+ "value": "PreconditionFailed"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/set-tags",
- "profile": "azure-hns",
+ "id": "operations/s3/delete-unauthenticated",
+ "profile": "s3",
"lane": "core",
- "purpose": "Replace the tags of an object, which an HNS account does not support",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tags"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/tags/object.txt",
- "op": "azure.set_tags",
- "tags": {
- "project": "object-tests"
- }
+ "key": "object-tests/remove/absent.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -67220,7 +102815,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -67228,52 +102823,35 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/tags/object.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "projectobject-tests"
+ "value": "/fixture/object-tests/remove/absent.txt"
}
},
{
- "at": "/query/comp",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "tags"
- }
- },
- {
- "at": "/headers/content-type",
- "optional": false,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/xml; charset=UTF-8"
- ]
+ "value": ""
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 403,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "BlobApiNotYetSupportedForHierarchicalNamespaceAccounts"
+ }
},
"body": {
"encoding": "utf8",
- "data": "BlobApiNotYetSupportedForHierarchicalNamespaceAccountsFixture error"
- }
+ "data": "\nInvalidAccessKeyIdFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -67293,7 +102871,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": 403
}
},
{
@@ -67301,25 +102879,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobApiNotYetSupportedForHierarchicalNamespaceAccounts"
+ "value": "InvalidAccessKeyId"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-with-tier",
- "profile": "azure-hns",
+ "id": "operations/s3/get-before-commit",
+ "profile": "s3",
"lane": "core",
- "purpose": "Write an object straight into the Cool access tier",
+ "purpose": "get before commit",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "Zmlyc3Q=",
- "key": "object-tests/tiers/object.txt",
- "op": "put",
- "tier": "Cool"
+ "key": "object-tests/multipart/object.bin",
+ "op": "get"
},
"exchanges": [
{
@@ -67331,7 +102907,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -67339,7 +102915,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/tiers/object.txt"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -67347,74 +102923,29 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "Zmlyc3Q="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
- }
- },
- {
- "at": "/headers/x-ms-access-tier",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Cool"
+ "value": ""
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 404,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ }
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "\nNoSuchKeyFixture error"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/set-tier-unknown",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "Refuse an access tier the service does not have",
- "sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tier"
- ],
- "call": {
- "key": "object-tests/tiers/object.txt",
- "op": "azure.set_tier",
- "tier": "Warm"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -67422,7 +102953,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -67430,7 +102961,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/tiers/object.txt"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -67442,37 +102973,31 @@
}
},
{
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "tier"
- }
- },
- {
- "at": "/headers/x-ms-access-tier",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "Warm"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "InvalidHeaderValue"
+ }
},
"body": {
"encoding": "utf8",
- "data": "InvalidHeaderValueFixture error"
- }
+ "data": "\nNoSuchKeyFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -67492,7 +103017,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": 404
}
},
{
@@ -67500,24 +103025,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidHeaderValue"
+ "value": "NoSuchKey"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/set-tier-cool",
- "profile": "azure-hns",
+ "id": "operations/s3/get-bucket-missing",
+ "profile": "s3",
"lane": "core",
- "purpose": "Move an object to the Cool access tier",
+ "purpose": "get bucket missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-tier"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/tiers/object.txt",
- "op": "azure.set_tier",
- "tier": "Cool"
+ "key": "object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -67529,7 +103053,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -67537,7 +103061,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/tiers/object.txt"
+ "value": "/fixture/object.txt"
}
},
{
@@ -67547,36 +103071,79 @@
"is": "equal",
"value": ""
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nNoSuchBucketFixture error"
},
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "tier"
+ "value": "GET"
}
},
{
- "at": "/headers/x-ms-access-tier",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "Cool"
+ "value": "/fixture/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
}
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "\nNoSuchBucketFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -67588,26 +103155,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "NoSuchBucket"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-internal-error",
- "profile": "azure-hns",
+ "id": "operations/s3/head-bucket-missing",
+ "profile": "s3",
"lane": "core",
- "purpose": "Report a 500 InternalError answer as an error, after at most 5 retries",
+ "purpose": "Report a HEAD of an object in a missing bucket as missing, not not_found. S3 answers 404 without a body, the same answer as for a missing object, so a client cannot tell that the object is absent",
"sources": [
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "transient",
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -67619,7 +103207,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "HEAD"
}
},
{
@@ -67627,7 +103215,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object.txt"
}
},
{
@@ -67635,15 +103223,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
@@ -67652,22 +103232,64 @@
],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 404,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "InternalError"
+ }
},
"body": {
- "encoding": "utf8",
- "data": "InternalErrorThe server encountered an internal error. Please retry the request."
+ "encoding": "empty"
}
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
},
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "missing"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/get-committed-tail",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "get committed tail",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "get",
+ "range": {
+ "suffix": 10
+ }
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -67677,7 +103299,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -67685,7 +103307,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -67693,15 +103315,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "bytes=-10"
}
}
],
@@ -67710,82 +103332,219 @@
],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 5242876-5242885/5242886",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InternalError"
+ "etag": "\"fixture-ae1b6d1d32ce\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "InternalErrorThe server encountered an internal error. Please retry the request."
+ "encoding": "base64",
+ "data": "Y2RlZnNlY29uZA=="
}
}
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
+ },
{
"request": [
{
- "at": "/method",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
- "at": "/path",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": ""
}
},
{
- "at": "/body_base64",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "bytes=-10"
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "HEAD"
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=5242876-5242885"
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ae1b6d1d32ce\""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 5242876-5242885/5242886",
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-ae1b6d1d32ce\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "Y2RlZnNlY29uZA=="
+ }
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-length": "10",
+ "content-range": "bytes 5242876-5242885/5242886",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InternalError"
+ "etag": "\"fixture-ae1b6d1d32ce\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "InternalErrorThe server encountered an internal error. Please retry the request."
+ "encoding": "empty"
}
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ae1b6d1d32ce\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 10
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
},
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Y2RlZnNlY29uZA=="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/get-empty",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "get empty",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/write/empty.bin",
+ "op": "get"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -67795,7 +103554,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -67803,7 +103562,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/write/empty.bin"
}
},
{
@@ -67811,15 +103570,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
@@ -67828,25 +103579,21 @@
],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InternalError"
+ "etag": "\"fixture-7d64e1430626\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "InternalErrorThe server encountered an internal error. Please retry the request."
+ "encoding": "base64",
+ "data": ""
}
}
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -67854,7 +103601,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -67862,7 +103609,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/write/empty.bin"
}
},
{
@@ -67870,42 +103617,148 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/empty.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-7d64e1430626\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/empty.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/partNumber",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-7d64e1430626\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 416,
"headers": {
+ "content-range": "bytes */0",
"content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "InternalError"
+ "etag": "\"fixture-7d64e1430626\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "InternalErrorThe server encountered an internal error. Please retry the request."
- }
+ "data": "\nInvalidRangeEmpty object0"
+ },
+ "framing": "chunked"
}
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -67913,7 +103766,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -67921,7 +103774,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/write/empty.bin"
}
},
{
@@ -67929,15 +103782,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "1"
}
}
],
@@ -67946,22 +103799,22 @@
],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InternalError"
+ "etag": "\"fixture-7d64e1430626\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "InternalErrorThe server encountered an internal error. Please retry the request."
+ "encoding": "base64",
+ "data": ""
}
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -67970,41 +103823,70 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 500
+ "value": "\"fixture-7d64e1430626\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InternalError"
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-if-unmodified-since-past",
- "profile": "azure-hns",
+ "id": "operations/s3/get-range-of-empty-object",
+ "profile": "s3",
"lane": "core",
- "purpose": "Refuse a write with 412 when the object changed after If-Unmodified-Since",
+ "purpose": "Report a range read of an empty object as 416 InvalidRange: no range of it can be satisfied, not even its first byte",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object-tests/write/empty.bin",
+ "op": "get",
+ "range": {
+ "end": 1,
+ "start": 0
+ }
},
"exchanges": [
{
@@ -68016,7 +103898,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -68024,7 +103906,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/write/empty.bin"
}
},
{
@@ -68032,23 +103914,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
},
{
- "at": "/headers/if-unmodified-since",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ "value": "bytes=0-0"
}
}
],
@@ -68057,18 +103931,19 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 416,
"headers": {
+ "content-range": "bytes */0",
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "ConditionNotMet"
+ }
},
"body": {
"encoding": "utf8",
- "data": "ConditionNotMetFixture error"
- }
+ "data": "\nInvalidRangeFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -68088,7 +103963,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": 416
}
},
{
@@ -68096,25 +103971,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": "InvalidRange"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-content-encoding-gzip",
- "profile": "azure-hns",
+ "id": "operations/s3/get-if-match-current",
+ "profile": "s3",
"lane": "core",
- "purpose": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged",
+ "purpose": "get if match current",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA",
- "content_encoding": "gzip",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "if_match": "\"fixture-ad03f2ab332a\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -68126,7 +104000,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -68134,7 +104008,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -68142,23 +104016,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-content-encoding",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "gzip"
+ "value": "\"fixture-ad03f2ab332a\""
}
}
],
@@ -68167,20 +104033,18 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "CVsDGvNMZH4SPA4MSLswrA==",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-bf139483d631\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
},
@@ -68191,7 +104055,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -68199,7 +104063,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -68207,23 +104071,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "\"fixture-ad03f2ab332a\""
}
},
{
- "at": "/headers/content-encoding",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "gzip"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -68232,20 +104096,19 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "CVsDGvNMZH4SPA4MSLswrA==",
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-bf139483d631\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -68266,7 +104129,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-bf139483d631\""
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -68279,26 +104158,30 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-content-properties",
- "profile": "azure-hns",
+ "id": "operations/s3/get-if-none-match-other",
+ "profile": "s3",
"lane": "core",
- "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write",
+ "purpose": "get if none match other",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "cache_control": "max-age=3600",
- "content_disposition": "attachment; filename=\"report.txt\"",
- "content_language": "nl-NL",
- "content_type": "text/plain; charset=utf-8",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "if_none_match": "\"fixture-db71b2c0257c\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -68310,7 +104193,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -68318,7 +104201,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -68326,47 +104209,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
- }
- },
- {
- "at": "/headers/x-ms-blob-content-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "text/plain; charset=utf-8"
- }
- },
- {
- "at": "/headers/x-ms-blob-content-language",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "nl-NL"
- }
- },
- {
- "at": "/headers/x-ms-blob-content-disposition",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "attachment; filename=\"report.txt\""
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-cache-control",
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "max-age=3600"
+ "value": "\"fixture-db71b2c0257c\""
}
}
],
@@ -68375,20 +104226,18 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-bf139483d631\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
},
@@ -68399,7 +104248,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -68407,7 +104256,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -68415,47 +104264,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
- }
- },
- {
- "at": "/headers/content-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "text/plain; charset=utf-8"
- }
- },
- {
- "at": "/headers/content-language",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "nl-NL"
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-content-disposition",
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "attachment; filename=\"report.txt\""
+ "value": "\"fixture-db71b2c0257c\""
}
},
{
- "at": "/headers/cache-control",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "max-age=3600"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -68464,20 +104289,19 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "eB5eJF1ptWaXm4bijSPyxw==",
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-bf139483d631\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -68498,7 +104322,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-bf139483d631\""
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -68511,22 +104351,29 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-first-version",
- "profile": "azure-hns",
+ "id": "operations/s3/get-key-with-hash",
+ "profile": "s3",
"lane": "core",
- "purpose": "put first version",
+ "purpose": "get key with hash",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "djE=",
- "key": "object-tests/versions-mtypy4jp/object.txt",
- "op": "put"
+ "key": "object-tests/names/hash#tag.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -68538,7 +104385,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -68546,7 +104393,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
+ "value": "/fixture/object-tests/names/hash#tag.txt"
}
},
{
@@ -68554,15 +104401,62 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "djE="
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MQ=="
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "/fixture/object-tests/names/hash#tag.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -68571,20 +104465,19 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "ZlTHNMyrj0QP8IJetEPcfw==",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-36af044f7dd6\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
}
@@ -68605,7 +104498,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-36af044f7dd6\""
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -68618,23 +104527,29 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-if-match-current",
- "profile": "azure-hns",
+ "id": "operations/s3/get-key-with-percent",
+ "profile": "s3",
"lane": "core",
- "purpose": "put if match current",
+ "purpose": "get key with percent",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "cmVwbGFjZWQ=",
- "if_match": "\"fixture-bf139483d631\"",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object-tests/names/percent%20.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -68646,7 +104561,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -68654,7 +104569,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/names/percent%20.txt"
}
},
{
@@ -68662,23 +104577,62 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "cmVwbGFjZWQ="
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MQ=="
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
}
},
{
- "at": "/headers/if-match",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-bf139483d631\""
+ "value": "/fixture/object-tests/names/percent%20.txt"
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -68687,20 +104641,19 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "kbskg1kEP+mEFuJZyb3xDQ==",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-12045b9dfdc3\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
}
@@ -68721,7 +104674,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-12045b9dfdc3\""
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -68734,23 +104703,29 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-if-none-match-missing",
- "profile": "azure-hns",
+ "id": "operations/s3/get-key-with-plus",
+ "profile": "s3",
"lane": "core",
- "purpose": "put if none match missing",
+ "purpose": "get key with plus",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "ZnJlc2g=",
- "if_none_match": "*",
- "key": "object-tests/write/fresh.txt",
- "op": "put"
+ "key": "object-tests/names/plus+plus.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -68762,7 +104737,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -68770,7 +104745,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/fresh.txt"
+ "value": "/fixture/object-tests/names/plus+plus.txt"
}
},
{
@@ -68778,23 +104753,62 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ZnJlc2g="
+ "value": ""
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
+ "body": {
+ "encoding": "base64",
+ "data": "MQ=="
+ }
+ }
+ },
+ {
+ "request": [
{
- "at": "/headers/if-none-match",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "*"
+ "value": "GET"
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "/fixture/object-tests/names/plus+plus.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -68803,20 +104817,19 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "dgEIWMg2LXMC71+UNqpmOQ==",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-5be249955d3d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
}
@@ -68837,7 +104850,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-5be249955d3d\""
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -68850,22 +104879,29 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-key-1024",
- "profile": "azure-hns",
+ "id": "operations/s3/get-key-with-space",
+ "profile": "s3",
"lane": "core",
- "purpose": "put key 1024",
+ "purpose": "get key with space",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
- "op": "put"
+ "key": "object-tests/names/space name.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -68877,7 +104913,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -68885,7 +104921,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
+ "value": "/fixture/object-tests/names/space name.txt"
}
},
{
@@ -68893,15 +104929,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
@@ -68910,73 +104938,21 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-f5596350d7a5\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-f5596350d7a5\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/put-key-1025",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "put key 1025",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -68984,7 +104960,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -68992,7 +104968,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
+ "value": "/fixture/object-tests/names/space name.txt"
}
},
{
@@ -69000,15 +104976,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -69017,20 +104993,19 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-16d1c2f31d98\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
}
@@ -69051,7 +105026,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-16d1c2f31d98\""
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -69064,22 +105055,29 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-key-under-object",
- "profile": "azure-hns",
+ "id": "operations/s3/get-key-with-question",
+ "profile": "s3",
"lane": "core",
- "purpose": "put key under object",
+ "purpose": "get key question",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/order/a/b",
- "op": "put"
+ "key": "a?b",
+ "op": "get"
},
"exchanges": [
{
@@ -69091,7 +105089,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -69099,7 +105097,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/order/a/b"
+ "value": "/fixture/a?b"
}
},
{
@@ -69107,85 +105105,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
- "optional": false,
+ "at": "/headers/content-type",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobNotFound"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
+ "encoding": "base64",
+ "data": "aGVsbG8="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlobNotFound"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/put-lost-the-race-to-create",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "put lost the race to create",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "body_base64": "YW5vdGhlciBvYmplY3Q=",
- "if_none_match": "*",
- "key": "object-tests/write/object.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -69193,7 +105147,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -69201,7 +105155,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/a?b"
}
},
{
@@ -69209,42 +105163,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
+ "value": ""
}
},
{
- "at": "/headers/if-none-match",
- "optional": false,
+ "at": "/headers/content-type",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "*"
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobAlreadyExists"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "BlobAlreadyExistsFixture error"
+ "encoding": "base64",
+ "data": "aGVsbG8="
}
}
}
@@ -69257,44 +105216,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 409
+ "value": "ok"
}
},
{
- "at": "/code",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobAlreadyExists"
+ "value": "aGVsbG8="
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-md5-mismatch",
- "profile": "azure-hns",
+ "id": "operations/s3/get-key-with-non-ascii",
+ "profile": "s3",
"lane": "core",
- "purpose": "put md5 mismatch",
+ "purpose": "get key unicode",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
],
"call": {
- "body_base64": "ZGVjbGFyZWQtYm9keQ==",
- "checksum": {
- "algorithm": "md5",
- "value_base64": "eV8yArF8trw9S3cdjGyerw=="
- },
- "key": "object-tests/hashes/md5-mismatch.txt",
- "op": "put"
+ "key": "café/雪",
+ "op": "get"
},
"exchanges": [
{
@@ -69306,7 +105252,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -69314,7 +105260,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/hashes/md5-mismatch.txt"
+ "value": "/fixture/café/雪"
}
},
{
@@ -69322,95 +105268,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ZGVjbGFyZWQtYm9keQ=="
- }
- },
- {
- "at": "/headers/content-md5",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "eV8yArF8trw9S3cdjGyerw=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
- "optional": false,
+ "at": "/headers/content-type",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "Md5Mismatch"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "Md5MismatchFixture error"
+ "encoding": "base64",
+ "data": "aGVsbG8="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Md5Mismatch"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/put-metadata-empty-value",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "put metadata empty value",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/empty-value.txt",
- "metadata": {
- "empty": ""
- },
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -69418,7 +105310,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -69426,7 +105318,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/empty-value.txt"
+ "value": "/fixture/café/雪"
}
},
{
@@ -69434,45 +105326,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-meta-empty",
- "optional": false,
+ "at": "/headers/content-type",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-range": "bytes 0-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-18852ad86043\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "aGVsbG8="
}
}
}
@@ -69489,42 +105383,27 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-18852ad86043\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "aGVsbG8="
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-metadata-invalid-name",
- "profile": "azure-hns",
+ "id": "operations/s3/get-key-with-separators",
+ "profile": "s3",
"lane": "core",
- "purpose": "put metadata invalid name",
+ "purpose": "get key separators",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/invalid-name.txt",
- "metadata": {
- "not-valid": "1"
- },
- "op": "put"
+ "key": "a//b/",
+ "op": "get"
},
"exchanges": [
{
@@ -69536,7 +105415,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -69544,7 +105423,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/invalid-name.txt"
+ "value": "/fixture/a//b/"
}
},
{
@@ -69552,133 +105431,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
- }
- },
- {
- "at": "/headers/x-ms-meta-not-valid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1"
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
- "optional": false,
+ "at": "/headers/content-type",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidMetadata"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidMetadataFixture error"
+ "encoding": "base64",
+ "data": "aGVsbG8="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidMetadata"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "metadata"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": "InvalidMetadata"
- }
- }
- ]
- },
- {
- "id": "operations/azure-hns/put-metadata-replaced",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "put metadata replaced",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "body_base64": "Mg==",
- "key": "object-tests/metadata/replaced.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -69686,7 +105473,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -69694,7 +105481,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/replaced.txt"
+ "value": "/fixture/a//b/"
}
},
{
@@ -69702,37 +105489,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "Mg=="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
+ {
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "yB5yjZ1ML2NvBn+JzBSGLA==",
+ "content-range": "bytes 0-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-c24dabf9e117\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "aGVsbG8="
}
}
}
@@ -69749,43 +105546,27 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-c24dabf9e117\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "aGVsbG8="
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-metadata",
- "profile": "azure-hns",
+ "id": "operations/s3/get-metadata-empty-value",
+ "profile": "s3",
"lane": "core",
- "purpose": "put metadata",
+ "purpose": "get metadata empty value",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/object.txt",
- "metadata": {
- "name": "value",
- "second": "2"
- },
- "op": "put"
+ "key": "object-tests/metadata/empty-value.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -69797,7 +105578,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -69805,7 +105586,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/object.txt"
+ "value": "/fixture/object-tests/metadata/empty-value.txt"
}
},
{
@@ -69813,31 +105594,63 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": ""
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-empty": ""
},
+ "body": {
+ "encoding": "base64",
+ "data": "MQ=="
+ }
+ }
+ },
+ {
+ "request": [
{
- "at": "/headers/x-ms-meta-name",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "value"
+ "value": "GET"
}
},
{
- "at": "/headers/x-ms-meta-second",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "/fixture/object-tests/metadata/empty-value.txt"
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -69846,20 +105659,20 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-4d04dba3441e\"",
+ "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-amz-meta-empty": ""
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
}
@@ -69880,7 +105693,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-4d04dba3441e\""
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -69893,25 +105722,39 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "empty": ""
+ }
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-metadata-identifier-name",
- "profile": "azure-hns",
+ "id": "operations/s3/get-metadata-hyphen-name",
+ "profile": "s3",
"lane": "core",
- "purpose": "An Azure metadata name must be a C# identifier, which may start with an underscore and hold digits. Send _a1; only a name that is no identifier may be refused.",
+ "purpose": "get metadata hyphen name",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/identifier-name.txt",
- "metadata": {
- "_a1": "1"
- },
- "op": "put"
+ "key": "object-tests/metadata/hyphen-name.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -69923,7 +105766,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -69931,7 +105774,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/identifier-name.txt"
+ "value": "/fixture/object-tests/metadata/hyphen-name.txt"
}
},
{
@@ -69939,23 +105782,63 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": ""
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-not-valid": "1"
},
+ "body": {
+ "encoding": "base64",
+ "data": "MQ=="
+ }
+ }
+ },
+ {
+ "request": [
{
- "at": "/headers/x-ms-meta-_a1",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "GET"
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "/fixture/object-tests/metadata/hyphen-name.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -69964,20 +105847,20 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "xMpCOKC5I4INzFCab3WEmw==",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-4d04dba3441e\"",
+ "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-amz-meta-not-valid": "1"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
}
@@ -69998,7 +105881,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-4d04dba3441e\""
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -70011,22 +105910,39 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "not-valid": "1"
+ }
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-over-snapshotted",
- "profile": "azure-hns",
+ "id": "operations/s3/get-metadata-punctuation-name",
+ "profile": "s3",
"lane": "core",
- "purpose": "put over snapshotted",
+ "purpose": "Report a metadata name that holds any character of an HTTP token.",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "dHdv",
- "key": "object-tests/snapshots/object.txt",
- "op": "put"
+ "key": "object-tests/metadata/punctuation-name.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -70038,7 +105954,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -70046,7 +105962,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
+ "value": "/fixture/object-tests/metadata/punctuation-name.txt"
}
},
{
@@ -70054,15 +105970,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "dHdv"
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
@@ -70071,73 +105979,22 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
- "content-md5": "uKn3Fdu2T9XFbneDxoIKYQ==",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-810306ce8bc4\"",
+ "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-amz-meta-1a!#$%&'*+.^_`|~b": "1"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-810306ce8bc4\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/put-overwrite",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "put overwrite",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "body_base64": "b3ZlcndyaXR0ZW4=",
- "key": "object-tests/write/object.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -70145,7 +106002,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -70153,7 +106010,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/metadata/punctuation-name.txt"
}
},
{
@@ -70161,15 +106018,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "b3ZlcndyaXR0ZW4="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -70178,20 +106035,20 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "UJ/0v/8wp3EDqsNAaOpGxw==",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-3da2f422ef3c\"",
+ "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-amz-meta-1a!#$%&'*+.^_`|~b": "1"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
}
@@ -70212,7 +106069,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-3da2f422ef3c\""
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -70225,23 +106098,39 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "1a!#$%&'*+.^_`|~b": "1"
+ }
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-precondition-failed",
- "profile": "azure-hns",
+ "id": "operations/s3/get-metadata-non-ascii-value",
+ "profile": "s3",
"lane": "core",
- "purpose": "put precondition failed",
+ "purpose": "A general-purpose bucket returns a value outside ASCII as an RFC 2047 encoded word. Decode it, so é reads back as é.",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "YW5vdGhlciBvYmplY3Q=",
- "if_match": "\"fixture-088e5dc109cf\"",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object-tests/metadata/non-ascii.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -70253,7 +106142,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -70261,7 +106150,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/metadata/non-ascii.txt"
}
},
{
@@ -70269,23 +106158,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-088e5dc109cf\""
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
@@ -70294,111 +106167,54 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "ConditionNotMet"
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-value": "=?UTF-8?Q?caf=C3=A9?="
},
"body": {
- "encoding": "utf8",
- "data": "ConditionNotMetFixture error"
+ "encoding": "base64",
+ "data": "MQ=="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ConditionNotMet"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/put-precondition-failed-code-in-body",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "put precondition failed, with the error code only in the XML body",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
- ],
- "origin": "constructed",
- "call": {
- "body_base64": "YW5vdGhlciBvYmplY3Q=",
- "if_match": "\"fixture-088e5dc109cf\"",
- "key": "object-tests/write/object.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
- }
- },
- {
- "at": "/path",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "GET"
}
},
{
- "at": "/body_base64",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
+ "value": "/fixture/object-tests/metadata/non-ascii.txt"
}
},
{
- "at": "/headers/if-match",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-088e5dc109cf\""
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -70407,16 +106223,20 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-value": "=?UTF-8?Q?caf=C3=A9?="
},
"body": {
- "encoding": "utf8",
- "data": "ConditionNotMetFixture error"
+ "encoding": "base64",
+ "data": "MQ=="
}
}
}
@@ -70429,40 +106249,76 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionNotMet"
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "value": "café"
+ }
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-refused",
- "profile": "azure-hns",
+ "id": "operations/s3/get-metadata-outside-latin-1",
+ "profile": "s3",
"lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "purpose": "Decode a base64 RFC 2047 encoded word, which S3 returns for text that is mostly outside ASCII.",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
- "key": "object.txt",
- "op": "put"
+ "key": "object-tests/metadata/outside-latin-1.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -70474,7 +106330,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -70482,7 +106338,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object.txt"
+ "value": "/fixture/object-tests/metadata/outside-latin-1.txt"
}
},
{
@@ -70490,15 +106346,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "bm90aGluZyBpcyBzdG9yZWQ="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
@@ -70507,67 +106355,22 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "ContainerNotFound"
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-value": "=?UTF-8?B?6Zuq?="
},
"body": {
- "encoding": "utf8",
- "data": "ContainerNotFoundFixture error"
+ "encoding": "base64",
+ "data": "MQ=="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ContainerNotFound"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/put-second-version",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "put second version",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "body_base64": "djI=",
- "key": "object-tests/versions-mtypy4jp/object.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -70575,7 +106378,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -70583,7 +106386,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/versions-mtypy4jp/object.txt"
+ "value": "/fixture/object-tests/metadata/outside-latin-1.txt"
}
},
{
@@ -70591,15 +106394,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "djI="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -70608,20 +106411,20 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "GyZ2GcSBLMRu4oF0eITKUA==",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-ecff54f15562\"",
+ "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-amz-meta-value": "=?UTF-8?B?6Zuq?="
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
}
@@ -70642,7 +106445,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ecff54f15562\""
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -70655,22 +106474,39 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "value": "雪"
+ }
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-unauthenticated",
- "profile": "azure-hns",
+ "id": "operations/s3/get-metadata-split-encoded-words",
+ "profile": "s3",
"lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "purpose": "S3 returns a long value as several RFC 2047 encoded words, separated by spaces. Decode each and join them without the spaces.",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object-tests/metadata/split-encoded-words.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -70682,7 +106518,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -70690,7 +106526,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/fixture/object-tests/metadata/split-encoded-words.txt"
}
},
{
@@ -70698,15 +106534,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "bm90aGluZyBpcyBzdG9yZWQ="
- }
- },
- {
- "at": "/headers/x-ms-blob-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "value": ""
}
}
],
@@ -70715,71 +106543,22 @@
],
"allow_query": [],
"response": {
- "status": 401,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidAuthenticationInfo"
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-value": "=?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?= =?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?="
},
"body": {
- "encoding": "utf8",
- "data": "InvalidAuthenticationInfoFixture error"
+ "encoding": "base64",
+ "data": "MQ=="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 401
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidAuthenticationInfo"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/put-with-crc64",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "put with crc64",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "body_base64": "ZGVjbGFyZWQtYm9keQ==",
- "checksum": {
- "algorithm": "azure_crc64",
- "value_base64": "9XBvAwWoR9o="
- },
- "key": "object-tests/hashes/crc64.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -70787,7 +106566,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -70795,7 +106574,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/hashes/crc64.txt"
+ "value": "/fixture/object-tests/metadata/split-encoded-words.txt"
}
},
{
@@ -70803,23 +106582,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ZGVjbGFyZWQtYm9keQ=="
- }
- },
- {
- "at": "/headers/x-ms-content-crc64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "9XBvAwWoR9o="
+ "value": ""
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "BlockBlob"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -70828,20 +106599,20 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-bf462a2f52f2\"",
+ "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-amz-meta-value": "=?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?= =?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?="
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
}
@@ -70862,7 +106633,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-bf462a2f52f2\""
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -70875,26 +106662,39 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "value": "雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪"
+ }
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/put-with-md5",
- "profile": "azure-hns",
+ "id": "operations/s3/get-metadata-malformed-encoded-word",
+ "profile": "s3",
"lane": "core",
- "purpose": "put with md5",
+ "purpose": "Leave a value that only looks like an RFC 2047 encoded word as it is: =ZZ is no hexadecimal byte.",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "ZGVjbGFyZWQtYm9keQ==",
- "checksum": {
- "algorithm": "md5",
- "value_base64": "N6YZkbg+Lyfxtskwn8iRCg=="
- },
- "key": "object-tests/hashes/md5.txt",
- "op": "put"
+ "key": "object-tests/metadata/malformed-encoded-word.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -70906,7 +106706,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -70914,7 +106714,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/hashes/md5.txt"
+ "value": "/fixture/object-tests/metadata/malformed-encoded-word.txt"
}
},
{
@@ -70922,23 +106722,63 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ZGVjbGFyZWQtYm9keQ=="
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-value": "=?UTF-8?Q?caf=ZZ?="
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MQ=="
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
}
},
{
- "at": "/headers/content-md5",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "N6YZkbg+Lyfxtskwn8iRCg=="
+ "value": "/fixture/object-tests/metadata/malformed-encoded-word.txt"
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -70947,20 +106787,20 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
- "content-md5": "N6YZkbg+Lyfxtskwn8iRCg==",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-15ae0acd3480\"",
+ "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-amz-meta-value": "=?UTF-8?Q?caf=ZZ?="
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
}
@@ -70981,7 +106821,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-15ae0acd3480\""
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -70994,21 +106850,39 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "value": "=?UTF-8?Q?caf=ZZ?="
+ }
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/snapshot",
- "profile": "azure-hns",
+ "id": "operations/s3/get-metadata-replaced",
+ "profile": "s3",
"lane": "core",
- "purpose": "snapshot",
+ "purpose": "get metadata replaced",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/snapshots/object.txt",
- "op": "azure.snapshot"
+ "key": "object-tests/metadata/replaced.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -71020,7 +106894,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -71028,7 +106902,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/snapshots/object.txt"
+ "value": "/fixture/object-tests/metadata/replaced.txt"
}
},
{
@@ -71038,14 +106912,6 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "snapshot"
- }
}
],
"allow_headers": [
@@ -71053,68 +106919,21 @@
],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
+ "etag": "\"fixture-ea4c238956b1\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "FeatureNotYetSupportedForHierarchicalNamespaceAccountsFixture error"
+ "encoding": "base64",
+ "data": "Mg=="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 409
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "FeatureNotYetSupportedForHierarchicalNamespaceAccounts"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/stage-empty",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "stage empty",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "block_id_base64": "MDAwMDAz",
- "body_base64": "",
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.stage_block"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -71122,7 +106941,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -71130,7 +106949,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/metadata/replaced.txt"
}
},
{
@@ -71142,19 +106961,11 @@
}
},
{
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
- }
- },
- {
- "at": "/query/blockid",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "MDAwMDAz"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -71163,17 +106974,19 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidHeaderValue"
+ "etag": "\"fixture-ea4c238956b1\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidHeaderValueFixture error"
+ "encoding": "base64",
+ "data": "Mg=="
}
}
}
@@ -71186,41 +106999,66 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "\"fixture-ea4c238956b1\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidHeaderValue"
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Mg=="
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/stage-escaped-id",
- "profile": "azure-hns",
+ "id": "operations/s3/get-metadata",
+ "profile": "s3",
"lane": "core",
- "purpose": "stage escaped id",
+ "purpose": "get metadata",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "block_id_base64": "+/8=",
- "body_base64": "b25l",
- "key": "object-tests/multipart/escaped.bin",
- "op": "azure.stage_block"
+ "key": "object-tests/metadata/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -71232,7 +107070,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -71240,7 +107078,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/escaped.bin"
+ "value": "/fixture/object-tests/metadata/object.txt"
}
},
{
@@ -71248,23 +107086,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "b25l"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
- }
- },
- {
- "at": "/query/blockid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "+/8="
+ "value": ""
}
}
],
@@ -71273,64 +107095,23 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "x-amz-meta-name": "value",
+ "x-amz-meta-second": "2"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/stage-id-too-long",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "stage id too long",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "block_id_base64": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg=",
- "body_base64": "dGhpcmQ=",
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.stage_block"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -71338,7 +107119,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -71346,7 +107127,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/metadata/object.txt"
}
},
{
@@ -71354,23 +107135,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "dGhpcmQ="
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
+ "value": ""
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHg="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -71379,17 +107152,21 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "OutOfRangeInput"
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-name": "value",
+ "x-amz-meta-second": "2"
},
"body": {
- "encoding": "utf8",
- "data": "OutOfRangeInputBlock ID exceeds 64 decoded bytes."
+ "encoding": "base64",
+ "data": "MQ=="
}
}
}
@@ -71402,82 +107179,77 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "OutOfRangeInput"
+ "value": 1
}
- }
- ],
- "refusal": [
+ },
{
- "at": "/outcome",
+ "at": "/value/content_type",
"optional": false,
"rule": {
"is": "equal",
- "value": "refused"
+ "value": "binary/octet-stream"
}
},
{
- "at": "/kind",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "matches",
- "pattern": ".+"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/parameter",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "block_id_base64"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
+ "value": "MQ=="
}
},
{
- "at": "/code",
- "optional": true,
+ "at": "/value/metadata",
+ "optional": false,
"rule": {
"is": "equal",
- "value": "OutOfRangeInput"
+ "value": {
+ "name": "value",
+ "second": "2"
+ }
}
}
- ]
+ ],
+ "refusal": null
},
{
- "id": "operations/azure-hns/stage-mixed-length-id",
- "profile": "azure-hns",
+ "id": "operations/s3/get-metadata-ignores-unknown-headers",
+ "profile": "s3",
"lane": "core",
- "purpose": "stage mixed length id",
+ "purpose": "Surface user metadata; unknown headers must not become metadata.",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
],
"call": {
- "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy",
- "body_base64": "dGhpcmQ=",
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.stage_block"
+ "key": "object",
+ "op": "get"
},
"exchanges": [
{
@@ -71489,7 +107261,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -71497,7 +107269,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object"
}
},
{
@@ -71505,42 +107277,109 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "dGhpcmQ="
+ "value": ""
}
},
{
- "at": "/query/comp",
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-author": "Ada",
+ "x-amz-request-id": "fixture-request-id",
+ "x-unrelated": "not metadata"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "aGVsbG8="
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "block"
+ "value": "GET"
}
},
{
- "at": "/query/blockid",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy"
+ "value": "/fixture/object"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidBlobOrBlock"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-author": "Ada",
+ "x-amz-request-id": "fixture-request-id",
+ "x-unrelated": "not metadata"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidBlobOrBlockFixture error"
+ "encoding": "base64",
+ "data": "aGVsbG8="
}
}
}
@@ -71553,44 +107392,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "aGVsbG8="
}
},
{
- "at": "/code",
+ "at": "/value/metadata",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidBlobOrBlock"
+ "value": {
+ "author": "Ada"
+ }
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/stage-mixed-length-id-code-in-body",
- "profile": "azure-hns",
+ "id": "operations/s3/get-missing",
+ "profile": "s3",
"lane": "core",
- "purpose": "stage mixed length id, with the error code only in the XML body",
+ "purpose": "get missing. A client reports it as not_found: the object is absent",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "constructed",
"call": {
- "block_id_base64": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy",
- "body_base64": "dGhpcmQ=",
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.stage_block"
+ "key": "object-tests/read/absent.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -71602,7 +107438,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -71610,7 +107446,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/read/absent.txt"
}
},
{
@@ -71618,23 +107454,61 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "dGhpcmQ="
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
}
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nNoSuchKeyFixture error"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "block"
+ "value": "GET"
}
},
{
- "at": "/query/blockid",
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/absent.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "YS1tdWNoLWxvbmdlci1ibG9jay1pZGVudGlmaWVy"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -71643,7 +107517,7 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
@@ -71652,8 +107526,9 @@
},
"body": {
"encoding": "utf8",
- "data": "InvalidBlobOrBlockFixture error"
- }
+ "data": "\nNoSuchKeyFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -71673,7 +107548,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": 404
}
},
{
@@ -71681,25 +107556,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidBlobOrBlock"
+ "value": "NoSuchKey"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "not_found"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/stage-unauthenticated",
- "profile": "azure-hns",
+ "id": "operations/s3/get-not-modified",
+ "profile": "s3",
"lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "purpose": "get not modified",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "block_id_base64": "MDAwMDAx",
- "body_base64": "Zmlyc3Q=",
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.stage_block"
+ "if_none_match": "\"fixture-ad03f2ab332a\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -71711,7 +107593,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -71719,7 +107601,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -71727,23 +107609,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "Zmlyc3Q="
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
+ "value": ""
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAx"
+ "value": "\"fixture-ad03f2ab332a\""
}
}
],
@@ -71752,68 +107626,19 @@
],
"allow_query": [],
"response": {
- "status": 401,
+ "status": 304,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidAuthenticationInfo"
+ "etag": "\"fixture-ad03f2ab332a\""
},
"body": {
- "encoding": "utf8",
- "data": "InvalidAuthenticationInfoFixture error"
+ "encoding": "base64",
+ "data": ""
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 401
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidAuthenticationInfo"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/stage",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "stage",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.stage_block"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -71821,7 +107646,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -71829,7 +107654,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -71837,23 +107662,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
+ "value": ""
}
},
{
- "at": "/query/comp",
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "block"
+ "value": "\"fixture-ad03f2ab332a\""
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "MDAwMDAy"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -71862,14 +107687,12 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 304,
"headers": {
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "etag": "\"fixture-ad03f2ab332a\""
},
"body": {
"encoding": "base64",
@@ -71886,36 +107709,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
- "optional": true,
+ "at": "/status",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 304
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/stage-id-64-bytes",
- "profile": "azure-hns",
+ "id": "operations/s3/get-precondition-failed",
+ "profile": "s3",
"lane": "core",
- "purpose": "A block ID decodes to at most 64 bytes, and Azure stages a block whose ID decodes to exactly 64. Send it; only a longer ID may be refused.",
+ "purpose": "get precondition failed",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "block_id_base64": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/multipart/staged.bin",
- "op": "azure.stage_block"
+ "if_match": "\"fixture-db71b2c0257c\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -71927,7 +107746,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -71935,7 +107754,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -71943,23 +107762,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
+ "value": ""
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA=="
+ "value": "\"fixture-db71b2c0257c\""
}
}
],
@@ -71968,64 +107779,20 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 412,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/stage-key-question",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "stage, with the key \"question?mark.txt\"",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/question?mark.txt",
- "op": "azure.stage_block"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -72033,7 +107800,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -72041,7 +107808,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/question?mark.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -72049,23 +107816,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
+ "value": ""
}
},
{
- "at": "/query/comp",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "block"
+ "value": "\"fixture-db71b2c0257c\""
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "MDAwMDAy"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -72074,19 +107841,18 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 412,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -72098,36 +107864,43 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
- "optional": true,
+ "at": "/status",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PreconditionFailed"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/stage-key-hash",
- "profile": "azure-hns",
+ "id": "operations/s3/get-range-inverted",
+ "profile": "s3",
"lane": "core",
- "purpose": "stage, with the key \"hash#tag.txt\"",
+ "purpose": "get range inverted",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/hash#tag.txt",
- "op": "azure.stage_block"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 2,
+ "start": 6
+ }
},
"exchanges": [
{
@@ -72139,7 +107912,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -72147,7 +107920,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/hash#tag.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -72155,23 +107928,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
+ "value": ""
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": "bytes=6-1"
}
}
],
@@ -72180,18 +107945,18 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -72209,6 +107974,30 @@
},
{
"at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -72217,23 +108006,59 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "range"
+ }
+ }
+ ],
+ "decline_permitted": true
},
{
- "id": "operations/azure-hns/stage-key-percent",
- "profile": "azure-hns",
+ "id": "operations/s3/get-range-empty",
+ "profile": "s3",
"lane": "core",
- "purpose": "stage, with the key \"percent%20.txt\"",
+ "purpose": "Read a range of no bytes, whose start equals its end. HTTP has no form for it: bytes=5-4 is inverted, and the service ignores it and sends the whole object. A client may refuse it instead",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/percent%20.txt",
- "op": "azure.stage_block"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 5,
+ "start": 5
+ }
},
"exchanges": [
{
@@ -72245,7 +108070,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -72253,7 +108078,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/percent%20.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -72261,23 +108086,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
+ "value": ""
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": "bytes=5-4"
}
}
],
@@ -72286,18 +108103,18 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -72315,6 +108132,30 @@
},
{
"at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -72323,23 +108164,58 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "range"
+ }
+ }
+ ],
+ "decline_permitted": true
},
{
- "id": "operations/azure-hns/stage-key-plus",
- "profile": "azure-hns",
+ "id": "operations/s3/get-range-not-satisfiable",
+ "profile": "s3",
"lane": "core",
- "purpose": "stage, with the key \"plus+plus.txt\"",
+ "purpose": "get range not satisfiable",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/plus+plus.txt",
- "op": "azure.stage_block"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "start": 40
+ }
},
"exchanges": [
{
@@ -72351,7 +108227,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -72359,7 +108235,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/plus+plus.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -72367,23 +108243,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
+ "value": ""
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": "bytes=40-"
}
}
],
@@ -72392,64 +108260,20 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 416,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nInvalidRangeFixture error"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/stage-key-space",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "stage, with the key \"space name.txt\"",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/space name.txt",
- "op": "azure.stage_block"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -72457,7 +108281,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -72465,7 +108289,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/space name.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -72473,23 +108297,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
+ "value": ""
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "MDAwMDAy"
+ "is": "matches",
+ "pattern": "bytes=40-[1-9][0-9]{2,}"
}
}
],
@@ -72498,19 +108314,18 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 416,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nInvalidRangeFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -72522,36 +108337,43 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
- "optional": true,
+ "at": "/status",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 416
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidRange"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/stage-key-non-ascii",
- "profile": "azure-hns",
+ "id": "operations/s3/get-range-past-the-end",
+ "profile": "s3",
"lane": "core",
- "purpose": "stage, with the key \"café/雪.txt\"",
+ "purpose": "Read a range that ends past the object, which the service clips to the object's end. Report the window it served from Content-Range, bytes 28-29/30, so that the caller sees the range was clipped",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/café/雪.txt",
- "op": "azure.stage_block"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 64,
+ "start": 28
+ }
},
"exchanges": [
{
@@ -72563,7 +108385,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -72571,7 +108393,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/café/雪.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -72579,23 +108401,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
+ "value": ""
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": "bytes=28-63"
}
}
],
@@ -72604,18 +108418,19 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
+ "content-range": "bytes 28-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "Y3Q="
}
}
}
@@ -72633,6 +108448,30 @@
},
{
"at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -72641,23 +108480,41 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Y3Q="
+ }
+ },
+ {
+ "at": "/value/content_range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes 28-29/30"
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/stage-key-double-slash",
- "profile": "azure-hns",
+ "id": "operations/s3/get-range-single-byte",
+ "profile": "s3",
"lane": "core",
- "purpose": "stage, with the key \"double//slash.txt\"",
+ "purpose": "get range single byte",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/double//slash.txt",
- "op": "azure.stage_block"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 1,
+ "start": 0
+ }
},
"exchanges": [
{
@@ -72669,7 +108526,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -72677,7 +108534,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/double//slash.txt"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -72685,23 +108542,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
+ "value": ""
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": "bytes=0-0"
}
}
],
@@ -72710,18 +108559,19 @@
],
"allow_query": [],
"response": {
- "status": 201,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-0/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-request-server-encrypted": "true"
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MA=="
}
}
}
@@ -72739,6 +108589,30 @@
},
{
"at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -72747,23 +108621,33 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MA=="
+ }
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/stage-key-trailing-slash",
- "profile": "azure-hns",
+ "id": "operations/s3/get-range",
+ "profile": "s3",
"lane": "core",
- "purpose": "stage, with the key \"trailing-slash/\"",
+ "purpose": "get range",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "block_id_base64": "MDAwMDAy",
- "body_base64": "c2Vjb25k",
- "key": "object-tests/keys/trailing-slash/",
- "op": "azure.stage_block"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 6,
+ "start": 2
+ }
},
"exchanges": [
{
@@ -72775,7 +108659,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -72783,7 +108667,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/trailing-slash/"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -72791,23 +108675,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
- }
- },
- {
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "block"
+ "value": ""
}
},
{
- "at": "/query/blockid",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": "bytes=2-5"
}
}
],
@@ -72816,17 +108692,19 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 2-5/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "InvalidUri"
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidUriFixture error"
+ "encoding": "base64",
+ "data": "MjM0NQ=="
}
}
}
@@ -72839,40 +108717,69 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "\"fixture-ad03f2ab332a\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidUri"
+ "value": 4
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MjM0NQ=="
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/staged-absent",
- "profile": "azure-hns",
+ "id": "operations/s3/get-range-open",
+ "profile": "s3",
"lane": "core",
- "purpose": "staged absent",
+ "purpose": "get range open",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
],
"call": {
- "key": "object-tests/multipart/absent.bin",
- "kind": "all",
- "op": "azure.list_blocks"
+ "key": "object",
+ "op": "get",
+ "range": {
+ "start": 3
+ }
},
"exchanges": [
{
@@ -72892,7 +108799,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/absent.bin"
+ "value": "/fixture/object"
}
},
{
@@ -72904,89 +108811,46 @@
}
},
{
- "at": "/query/comp",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "bytes=3-"
}
},
{
- "at": "/query/blocklisttype",
- "optional": false,
+ "at": "/headers/content-type",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "all"
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 3-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "x-ms-error-code": "BlobNotFound"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
+ "encoding": "base64",
+ "data": "bG8="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BlobNotFound"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/staged-absent-code-in-body",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "staged absent, with the error code only in the XML body",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/common-rest-api-error-codes",
- "https://learn.microsoft.com/en-us/rest/api/storageservices/blob-service-error-codes"
- ],
- "origin": "constructed",
- "call": {
- "key": "object-tests/multipart/absent.bin",
- "kind": "all",
- "op": "azure.list_blocks"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -73002,7 +108866,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/absent.bin"
+ "value": "/fixture/object"
}
},
{
@@ -73014,35 +108878,43 @@
}
},
{
- "at": "/query/comp",
- "optional": false,
+ "at": "/headers/content-type",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "blocklist"
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
},
{
- "at": "/query/blocklisttype",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "all"
+ "is": "matches",
+ "pattern": "bytes=3-[1-9][0-9]{2,}"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 3-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "BlobNotFoundFixture error"
+ "encoding": "base64",
+ "data": "bG8="
}
}
}
@@ -73055,40 +108927,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
+ "value": "ok"
}
},
{
- "at": "/code",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlobNotFound"
+ "value": "bG8="
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/staged-after-commit",
- "profile": "azure-hns",
+ "id": "operations/s3/get-replaced",
+ "profile": "s3",
"lane": "core",
- "purpose": "staged after commit",
+ "purpose": "get replaced",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/committed.bin",
- "kind": "all",
- "op": "azure.list_blocks"
+ "key": "object-tests/multipart/replaced.bin",
+ "op": "get"
},
"exchanges": [
{
@@ -73108,7 +108971,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/committed.bin"
+ "value": "/fixture/object-tests/multipart/replaced.bin"
}
},
{
@@ -73118,42 +108981,82 @@
"is": "equal",
"value": ""
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-8631a8b6edf7\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
+ "body": {
+ "encoding": "base64",
+ "data": "Yg=="
+ }
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "GET"
}
},
{
- "at": "/query/blocklisttype",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "all"
+ "value": "/fixture/object-tests/multipart/replaced.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-8ec031f3abfa\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-8631a8b6edf7\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "MDAwMDAx5MDAwMDAy6"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "Yg=="
+ }
}
}
]
@@ -73169,68 +109072,62 @@
}
},
{
- "at": "/value/committed/0/id_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDAwMDAx"
- }
- },
- {
- "at": "/value/committed/0/size",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 5
+ "value": "\"fixture-8631a8b6edf7\""
}
},
{
- "at": "/value/committed/1/id_base64",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": 1
}
},
{
- "at": "/value/committed/1/size",
+ "at": "/value/content_type",
"optional": false,
"rule": {
"is": "equal",
- "value": 6
+ "value": "binary/octet-stream"
}
},
{
- "at": "/value/committed",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "array_length",
- "value": 2
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/uncommitted",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "Yg=="
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/staged-after-replacement",
- "profile": "azure-hns",
+ "id": "operations/s3/get-single-part",
+ "profile": "s3",
"lane": "core",
- "purpose": "staged after replacement",
+ "purpose": "get single part",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/replaced.bin",
- "kind": "all",
- "op": "azure.list_blocks"
+ "key": "object-tests/multipart/single.bin",
+ "op": "get"
},
"exchanges": [
{
@@ -73250,7 +109147,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/replaced.bin"
+ "value": "/fixture/object-tests/multipart/single.bin"
}
},
{
@@ -73260,42 +109157,82 @@
"is": "equal",
"value": ""
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-69ebdafc497f\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
+ "body": {
+ "encoding": "base64",
+ "data": "b25seQ=="
+ }
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "GET"
}
},
{
- "at": "/query/blocklisttype",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "all"
+ "value": "/fixture/object-tests/multipart/single.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-3/4",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-9c5e55ff559c\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-69ebdafc497f\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "MDAwMDAx5"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "b25seQ=="
+ }
}
}
]
@@ -73311,52 +109248,65 @@
}
},
{
- "at": "/value/committed/0/id_base64",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAx"
+ "value": "\"fixture-69ebdafc497f\""
}
},
{
- "at": "/value/committed/0/size",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 5
+ "value": 4
}
},
{
- "at": "/value/committed",
+ "at": "/value/content_type",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 1
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
- "at": "/value/uncommitted",
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "b25seQ=="
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/staged-after-whole-write",
- "profile": "azure-hns",
+ "id": "operations/s3/get-suffix-longer-than-object",
+ "profile": "s3",
"lane": "core",
- "purpose": "staged after whole write",
+ "purpose": "get suffix longer than object",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/whole.bin",
- "kind": "all",
- "op": "azure.list_blocks"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "suffix": 100
+ }
},
"exchanges": [
{
@@ -73376,7 +109326,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/whole.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -73388,105 +109338,43 @@
}
},
{
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "blocklist"
- }
- },
- {
- "at": "/query/blocklisttype",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "all"
+ "value": "bytes=-100"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-09c6ba50f443\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": ""
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/committed",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/uncommitted",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure-hns/staged-committed-empty",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "staged committed empty",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "key": "object-tests/multipart/staged.bin",
- "kind": "committed",
- "op": "azure.list_blocks"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
{
"at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -73498,39 +109386,111 @@
}
},
{
- "at": "/query/comp",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "bytes=-100"
}
},
{
- "at": "/query/blocklisttype",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "committed"
+ "value": "HEAD"
}
}
],
- "allow_headers": [],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=0-29"
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-length": "30",
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": ""
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
]
@@ -73546,36 +109506,65 @@
}
},
{
- "at": "/value/committed",
+ "at": "/value/etag",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
}
},
{
- "at": "/value/uncommitted",
+ "at": "/value/size",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/staged-committed-nothing",
- "profile": "azure-hns",
+ "id": "operations/s3/get-suffix",
+ "profile": "s3",
"lane": "core",
- "purpose": "staged committed nothing",
+ "purpose": "get suffix",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/empty.bin",
- "kind": "all",
- "op": "azure.list_blocks"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "suffix": 6
+ }
},
"exchanges": [
{
@@ -73595,7 +109584,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/empty.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -73607,40 +109596,159 @@
}
},
{
- "at": "/query/comp",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "bytes=-6"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 24-29/30",
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "b2JqZWN0"
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/blocklisttype",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "all"
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=-6"
+ }
+ },
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
}
}
],
- "allow_headers": [],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=24-29"
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 24-29/30",
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "b2JqZWN0"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-length": "6",
+ "content-range": "bytes 24-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-072bed78cc6a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": ""
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
]
@@ -73656,36 +109764,62 @@
}
},
{
- "at": "/value/committed",
+ "at": "/value/etag",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
}
},
{
- "at": "/value/uncommitted",
+ "at": "/value/size",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": 6
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "b2JqZWN0"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/staged-escaped-id",
- "profile": "azure-hns",
+ "id": "operations/s3/get-unauthenticated",
+ "profile": "s3",
"lane": "core",
- "purpose": "staged escaped id",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/escaped.bin",
- "kind": "all",
- "op": "azure.list_blocks"
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -73705,7 +109839,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/escaped.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -73715,39 +109849,77 @@
"is": "equal",
"value": ""
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 403,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInvalidAccessKeyIdFixture error"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/comp",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "GET"
}
},
{
- "at": "/query/blocklisttype",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "all"
+ "value": "/fixture/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 403,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "+/8=3"
+ "data": "\nInvalidAccessKeyIdFixture error"
},
"framing": "chunked"
}
@@ -73761,56 +109933,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/committed",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
+ "value": "error"
}
},
{
- "at": "/value/uncommitted/0/id_base64",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "+/8="
+ "value": 403
}
},
{
- "at": "/value/uncommitted/0/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 3
- }
- },
- {
- "at": "/value/uncommitted",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
+ "value": "InvalidAccessKeyId"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/staged-replacement",
- "profile": "azure-hns",
+ "id": "operations/s3/get-whole",
+ "profile": "s3",
"lane": "core",
- "purpose": "staged replacement",
+ "purpose": "get whole",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/pending.bin",
- "kind": "all",
- "op": "azure.list_blocks"
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -73830,7 +109985,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/pending.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
@@ -73840,42 +109995,82 @@
"is": "equal",
"value": ""
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
},
{
- "at": "/query/comp",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/blocklisttype",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "all"
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-ce92c4d48b08\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "MDAwMDAx5MDAwMDAy6MDAwMDAx5"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
}
]
@@ -73891,84 +110086,62 @@
}
},
{
- "at": "/value/committed/0/id_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDAwMDAx"
- }
- },
- {
- "at": "/value/committed/0/size",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 5
+ "value": "\"fixture-ad03f2ab332a\""
}
},
{
- "at": "/value/committed/1/id_base64",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDAwMDAy"
+ "value": 30
}
},
{
- "at": "/value/committed/1/size",
+ "at": "/value/content_type",
"optional": false,
"rule": {
"is": "equal",
- "value": 6
- }
- },
- {
- "at": "/value/committed",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
+ "value": "binary/octet-stream"
}
},
{
- "at": "/value/uncommitted/0/id_base64",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "MDAwMDAx"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/uncommitted/0/size",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 5
- }
- },
- {
- "at": "/value/uncommitted",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/staged-uncommitted-only",
- "profile": "azure-hns",
+ "id": "operations/s3/get-xml-looking",
+ "profile": "s3",
"lane": "core",
- "purpose": "staged uncommitted only",
+ "purpose": "get xml looking",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
],
"call": {
- "key": "object-tests/multipart/staged.bin",
- "kind": "all",
- "op": "azure.list_blocks"
+ "key": "object",
+ "op": "get"
},
"exchanges": [
{
@@ -73988,7 +110161,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object"
}
},
{
@@ -74000,39 +110173,102 @@
}
},
{
- "at": "/query/comp",
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ }
+ ],
+ "allow_headers": [],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "blocklist"
+ "value": "GET"
}
},
{
- "at": "/query/blocklisttype",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "all"
+ "value": "/fixture/object"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
"allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-32/33",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "MDAwMDAx5MDAwMDAy6"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
+ }
}
}
]
@@ -74048,68 +110284,28 @@
}
},
{
- "at": "/value/committed",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/uncommitted/0/id_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDAwMDAx"
- }
- },
- {
- "at": "/value/uncommitted/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 5
- }
- },
- {
- "at": "/value/uncommitted/1/id_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDAwMDAy"
- }
- },
- {
- "at": "/value/uncommitted/1/size",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": 6
- }
- },
- {
- "at": "/value/uncommitted",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
+ "value": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
}
}
],
"refusal": null
},
{
- "id": "operations/azure-hns/staged-uncommitted",
- "profile": "azure-hns",
+ "id": "operations/s3/get-noise-tolerance",
+ "profile": "s3",
"lane": "core",
- "purpose": "staged uncommitted",
+ "purpose": "get noise tolerance",
"sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
],
+ "origin": "constructed",
"call": {
- "key": "object-tests/multipart/staged.bin",
- "kind": "uncommitted",
- "op": "azure.list_blocks"
+ "key": "object",
+ "op": "get"
},
"exchanges": [
{
@@ -74129,7 +110325,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/staged.bin"
+ "value": "/fixture/object"
}
},
{
@@ -74141,19 +110337,15 @@
}
},
{
- "at": "/query/comp",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "blocklist"
- }
- },
- {
- "at": "/query/blocklisttype",
- "optional": false,
+ "at": "/headers/content-type",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "uncommitted"
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
}
],
@@ -74162,99 +110354,21 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"a-different-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-ms-creation-time": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "x-amz-request-id": "another-id",
+ "x-fixture-unknown": "ignored"
},
"body": {
- "encoding": "utf8",
- "data": "MDAwMDAx5MDAwMDAy6"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "aGVsbG8="
+ }
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/committed",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/uncommitted/0/id_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDAwMDAx"
- }
- },
- {
- "at": "/value/uncommitted/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 5
- }
- },
- {
- "at": "/value/uncommitted/1/id_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDAwMDAy"
- }
- },
- {
- "at": "/value/uncommitted/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 6
- }
- },
- {
- "at": "/value/uncommitted",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/abort-after-commit",
- "profile": "s3",
- "lane": "core",
- "purpose": "abort after commit",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.abort_multipart",
- "upload_id": "fixture-upload+/276ca18046f9="
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -74262,7 +110376,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -74270,7 +110384,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture/object"
}
},
{
@@ -74282,29 +110396,44 @@
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
+ {
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"a-different-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "another-id",
+ "x-fixture-unknown": "ignored"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "aGVsbG8="
}
}
}
@@ -74319,22 +110448,30 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aGVsbG8="
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3/abort-unknown-upload",
+ "id": "operations/s3/get-version",
"profile": "s3",
"lane": "core",
- "purpose": "abort unknown upload",
+ "purpose": "get version",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
],
"call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.abort_multipart",
- "upload_id": "fixture-upload+/4d0d5ccc4993="
+ "key": "object",
+ "op": "get",
+ "version": "opaque+/version="
},
"exchanges": [
{
@@ -74346,7 +110483,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -74354,7 +110491,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture/object"
}
},
{
@@ -74366,80 +110503,46 @@
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/versionId",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/4d0d5ccc4993="
+ "value": "opaque+/version="
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id",
+ "x-amz-version-id": "opaque+/version="
},
"body": {
- "encoding": "utf8",
- "data": "\nNoSuchUploadFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "aGVsbG8="
+ }
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "NoSuchUpload"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/abort",
- "profile": "s3",
- "lane": "core",
- "purpose": "abort",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/aborted.bin",
- "op": "s3.abort_multipart",
- "upload_id": "fixture-upload+/f85cf0cd3a3f="
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -74447,7 +110550,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -74455,7 +110558,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/aborted.bin"
+ "value": "/fixture/object"
}
},
{
@@ -74467,29 +110570,52 @@
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/versionId",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/f85cf0cd3a3f="
+ "value": "opaque+/version="
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id",
+ "x-amz-version-id": "opaque+/version="
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "aGVsbG8="
}
}
}
@@ -74504,28 +110630,38 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/version",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "opaque+/version="
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aGVsbG8="
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3/commit-after-abort",
+ "id": "operations/s3/get-temporary-redirect",
"profile": "s3",
"lane": "core",
- "purpose": "commit after abort",
+ "purpose": "Report a 307 TemporaryRedirect as an error",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
],
+ "origin": "transient",
"call": {
- "key": "object-tests/multipart/aborted.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-db71b2c0257c\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/f85cf0cd3a3f="
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -74537,7 +110673,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -74545,23 +110681,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/aborted.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-db71b2c0257c\""
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/f85cf0cd3a3f="
+ "value": ""
}
}
],
@@ -74570,16 +110698,17 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 307,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "location": "https://fixture.s3.eu-central-1.amazonaws.com/object-tests/read/object.txt"
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchUploadFixture error"
+ "data": "\nTemporaryRedirectPlease re-send this request to the specified temporary endpoint. Continue to use the original request endpoint for future requests.fixture.s3.eu-central-1.amazonaws.comfixturefixture"
},
"framing": "chunked"
}
@@ -74591,7 +110720,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -74599,23 +110728,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/aborted.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-db71b2c0257c\"1"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/f85cf0cd3a3f="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -74624,16 +110753,17 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 307,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "location": "https://fixture.s3.eu-central-1.amazonaws.com/object-tests/read/object.txt"
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchUploadFixture error"
+ "data": "\nTemporaryRedirectPlease re-send this request to the specified temporary endpoint. Continue to use the original request endpoint for future requests.fixture.s3.eu-central-1.amazonaws.comfixturefixture"
},
"framing": "chunked"
}
@@ -74655,7 +110785,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 307
}
},
{
@@ -74663,31 +110793,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "NoSuchUpload"
+ "value": "TemporaryRedirect"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/commit-lost-the-race-to-create",
+ "id": "operations/s3/get-wrong-region",
"profile": "s3",
"lane": "core",
- "purpose": "commit lost the race to create",
+ "purpose": "Report a 301 PermanentRedirect from an endpoint in another region as an error",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
],
"call": {
- "if_none_match": "*",
- "key": "object-tests/multipart/guarded.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-cd3c4834c1cd\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/9cd6f716dbf9="
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -74699,7 +110821,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -74707,31 +110829,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/guarded.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-cd3c4834c1cd\""
- }
- },
- {
- "at": "/headers/if-none-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "*"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/9cd6f716dbf9="
+ "value": ""
}
}
],
@@ -74740,16 +110846,17 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 301,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "x-amz-bucket-region": "eu-central-1"
},
"body": {
"encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
+ "data": "\nPermanentRedirectThe bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.fixture.s3.eu-central-1.amazonaws.comfixturefixture"
},
"framing": "chunked"
}
@@ -74761,7 +110868,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -74769,31 +110876,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/guarded.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-cd3c4834c1cd\"1"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "*"
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/9cd6f716dbf9="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -74802,16 +110901,17 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 301,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "x-amz-bucket-region": "eu-central-1"
},
"body": {
"encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
+ "data": "\nPermanentRedirectThe bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.fixture.s3.eu-central-1.amazonaws.comfixturefixture"
},
"framing": "chunked"
}
@@ -74833,7 +110933,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": 301
}
},
{
@@ -74841,32 +110941,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PreconditionFailed"
+ "value": "PermanentRedirect"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/commit-conditional-conflict",
+ "id": "operations/s3/get-body-cut-short",
"profile": "s3",
"lane": "core",
- "purpose": "Report a 409 ConditionalRequestConflict to a conditional completion as an error, without sending the completion again: AWS advises a new upload with every part staged again",
+ "purpose": "Report a body that ends before its Content-Length as an error, or resume it, but never return the short body",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://www.rfc-editor.org/rfc/rfc9112#section-8",
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_client.cpp"
],
"origin": "transient",
"call": {
- "if_none_match": "*",
- "key": "object-tests/multipart/guarded.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-cd3c4834c1cd\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/9cd6f716dbf9="
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -74878,7 +110971,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -74886,31 +110979,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/guarded.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-cd3c4834c1cd\""
- }
- },
- {
- "at": "/headers/if-none-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "*"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/9cd6f716dbf9="
+ "value": ""
}
}
],
@@ -74919,18 +110996,20 @@
],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
},
- "framing": "chunked"
+ "truncate_body_after": 15
}
},
{
@@ -74940,7 +111019,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -74948,31 +111027,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/guarded.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-cd3c4834c1cd\"1"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "*"
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/9cd6f716dbf9="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -74981,66 +111052,25 @@
],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
},
- "framing": "chunked"
+ "truncate_body_after": 15
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 409
- }
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ConditionalRequestConflict"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/commit-nothing",
- "profile": "s3",
- "lane": "core",
- "purpose": "commit nothing",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/guarded.bin",
- "op": "s3.complete_multipart",
- "parts": [],
- "upload_id": "fixture-upload+/9cd6f716dbf9="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -75050,7 +111080,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -75058,43 +111088,37 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/guarded.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": ""
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/9cd6f716dbf9="
+ "value": ""
}
}
],
"allow_headers": [
+ "content-type",
"content-type"
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nMalformedXMLFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
},
{
@@ -75104,7 +111128,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -75112,43 +111136,46 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/guarded.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": ""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/9cd6f716dbf9="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
"allow_headers": [
+ "content-type",
"content-type"
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nMalformedXMLFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
},
{
@@ -75158,7 +111185,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -75166,145 +111193,92 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/guarded.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/9cd6f716dbf9="
+ "value": ""
}
},
{
- "at": "/body_base64",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "bytes=15-"
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 15-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nMalformedXMLFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "Y3QtdGVzdHMtb2JqZWN0"
+ }
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
{
"at": "/outcome",
"optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
"rule": {
"is": "one_of",
"values": [
- "MalformedXML",
- "InvalidRequest"
+ "error",
+ "ok"
]
}
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "parts"
- }
},
{
- "at": "/status",
+ "at": "/value/body_base64",
"optional": true,
"rule": {
"is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "MalformedXML",
- "InvalidRequest"
- ]
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
- ]
+ ],
+ "refusal": null
},
{
- "id": "operations/s3/commit-out-of-order",
+ "id": "operations/s3/get-slow-down",
"profile": "s3",
"lane": "core",
- "purpose": "commit out of order",
+ "purpose": "Report a 503 SlowDown answer as an error, after at most 5 retries",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
],
+ "origin": "transient",
"call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-32b70ae425ac\"",
- "number": 2
- },
- {
- "etag": "\"fixture-6d60d5bbaa47\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/276ca18046f9="
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -75316,7 +111290,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -75324,23 +111298,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "2\"fixture-32b70ae425ac\"1\"fixture-6d60d5bbaa47\""
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": ""
}
}
],
@@ -75349,7 +111315,7 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -75358,7 +111324,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidPartOrderFixture error"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
@@ -75370,7 +111336,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -75378,23 +111344,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-32b70ae425ac\"2\"fixture-6d60d5bbaa47\"1"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -75403,7 +111369,7 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -75412,107 +111378,13 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidPartOrderFixture error"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidPartOrder"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "parts"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
- }
},
- {
- "at": "/code",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": "InvalidPartOrder"
- }
- }
- ]
- },
- {
- "id": "operations/s3/commit-part-too-small",
- "profile": "s3",
- "lane": "core",
- "purpose": "commit part too small",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/small.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-7bce379c0d8f\"",
- "number": 1
- },
- {
- "etag": "\"fixture-32b70ae425ac\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/cd2fdba21d3f="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -75522,7 +111394,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -75530,23 +111402,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/small.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-7bce379c0d8f\"2\"fixture-32b70ae425ac\""
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/cd2fdba21d3f="
+ "value": ""
}
}
],
@@ -75555,7 +111419,7 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -75564,7 +111428,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nEntityTooSmallFixture error"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
@@ -75576,7 +111440,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -75584,23 +111448,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/small.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-7bce379c0d8f\"1\"fixture-32b70ae425ac\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/cd2fdba21d3f="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -75609,7 +111473,7 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -75618,63 +111482,14 @@
},
"body": {
"encoding": "utf8",
- "data": "\nEntityTooSmallFixture error"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "EntityTooSmall"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/commit-precondition-failed",
- "profile": "s3",
- "lane": "core",
- "purpose": "commit precondition failed",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "if_match": "\"fixture-db71b2c0257c\"",
- "key": "object-tests/multipart/guarded.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-cd3c4834c1cd\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/9cd6f716dbf9="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -75684,7 +111499,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -75692,31 +111507,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/guarded.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-cd3c4834c1cd\""
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-db71b2c0257c\""
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/9cd6f716dbf9="
+ "value": ""
}
}
],
@@ -75725,7 +111524,7 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -75734,7 +111533,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
@@ -75746,7 +111545,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -75754,31 +111553,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/guarded.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-cd3c4834c1cd\"1"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/headers/if-match",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-db71b2c0257c\""
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/9cd6f716dbf9="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -75787,7 +111578,7 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -75796,62 +111587,14 @@
},
"body": {
"encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PreconditionFailed"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/commit-single-small-part",
- "profile": "s3",
- "lane": "core",
- "purpose": "commit single small part",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/single.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-3841a4d594c0\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/2b2c71a6ce04="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -75861,7 +111604,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -75869,23 +111612,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/single.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-3841a4d594c0\""
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/2b2c71a6ce04="
+ "value": ""
}
}
],
@@ -75894,17 +111629,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
@@ -75916,7 +111650,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -75924,23 +111658,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/single.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-3841a4d594c0\"1"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/2b2c71a6ce04="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -75949,76 +111683,23 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-69ebdafc497f\""
- }
+ ],
+ "optional": true
},
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/commit-object-size-mismatch",
- "profile": "s3",
- "lane": "core",
- "purpose": "Report S3's refusal of a completion whose parts do not add up to the object size stated in x-amz-mp-object-size",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/commit-object-size-mismatch.bin",
- "object_size": 4,
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-3841a4d594c0\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/2b2c71a6ce04="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -76028,7 +111709,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -76036,31 +111717,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/commit-object-size-mismatch.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-3841a4d594c0\""
- }
- },
- {
- "at": "/query/uploadId",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-upload+/2b2c71a6ce04="
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/headers/x-amz-mp-object-size",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "4"
+ "value": ""
}
}
],
@@ -76069,7 +111734,7 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -76078,7 +111743,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
@@ -76090,7 +111755,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -76098,31 +111763,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/commit-object-size-mismatch.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-3841a4d594c0\"1"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/2b2c71a6ce04="
+ "value": ""
}
},
{
- "at": "/headers/x-amz-mp-object-size",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "4"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -76131,7 +111788,7 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -76140,63 +111797,14 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidRequest"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/commit-object-size",
- "profile": "s3",
- "lane": "core",
- "purpose": "Send the object size the caller expects in x-amz-mp-object-size; a completion whose parts add up to it succeeds",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/commit-object-size.bin",
- "object_size": 3,
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-3841a4d594c0\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/2b2c71a6ce04="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -76206,7 +111814,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -76214,31 +111822,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/commit-object-size.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-3841a4d594c0\""
- }
- },
- {
- "at": "/query/uploadId",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-upload+/2b2c71a6ce04="
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/headers/x-amz-mp-object-size",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "3"
+ "value": ""
}
}
],
@@ -76247,17 +111839,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/commit-object-size.binfixtureobject-tests/multipart/commit-object-size.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
@@ -76269,7 +111860,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -76277,31 +111868,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/commit-object-size.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-3841a4d594c0\"1"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/2b2c71a6ce04="
+ "value": ""
}
},
{
- "at": "/headers/x-amz-mp-object-size",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "3"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -76310,22 +111893,22 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/commit-object-size.binfixtureobject-tests/multipart/commit-object-size.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -76334,49 +111917,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-69ebdafc497f\""
+ "value": 503
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "SlowDown"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/commit-one-empty-part",
+ "id": "operations/s3/get-if-unmodified-since-past",
"profile": "s3",
"lane": "core",
- "purpose": "Complete an upload of one empty part, which writes an empty object; a client that refuses a completion of no parts writes an empty object this way",
+ "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/empty.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-3841a4d594c0\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/2b2c71a6ce04="
+ "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -76388,7 +111962,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -76396,23 +111970,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/empty.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-3841a4d594c0\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/if-unmodified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/2b2c71a6ce04="
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
}
}
],
@@ -76421,17 +111995,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT"
+ "data": "\nPreconditionFailedFixture error"
},
"framing": "chunked"
}
@@ -76443,7 +112016,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -76451,23 +112024,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/empty.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-3841a4d594c0\"1"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
+ }
+ },
+ {
+ "at": "/headers/if-unmodified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/2b2c71a6ce04="
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
}
}
],
@@ -76476,17 +112057,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin"fixture-69ebdafc497f"rzsmsrcRLcM=FULL_OBJECT"
+ "data": "\nPreconditionFailedFixture error"
},
"framing": "chunked"
}
@@ -76500,49 +112080,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-69ebdafc497f\""
+ "value": 412
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "PreconditionFailed"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/commit-subset",
+ "id": "operations/s3/get-if-modified-since-future",
"profile": "s3",
"lane": "core",
- "purpose": "commit subset",
+ "purpose": "Read an object when If-Modified-Since names a future date",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/replaced.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-5945c592bad7\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/6ba3c5e480a2="
+ "if_modified_since": "Fri, 01 Jan 2100 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -76554,7 +112125,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -76562,23 +112133,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/replaced.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-5945c592bad7\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/if-modified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/6ba3c5e480a2="
+ "value": "Fri, 01 Jan 2100 00:00:00 GMT"
}
}
],
@@ -76589,17 +112160,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin"fixture-8631a8b6edf7"DZyVHeSVZ7c=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
},
{
@@ -76609,7 +112180,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -76617,23 +112188,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/replaced.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-5945c592bad7\"1"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
+ }
+ },
+ {
+ "at": "/headers/if-modified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/6ba3c5e480a2="
+ "value": "Fri, 01 Jan 2100 00:00:00 GMT"
}
}
],
@@ -76642,19 +112221,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin"fixture-8631a8b6edf7"DZyVHeSVZ7c=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
}
]
@@ -76674,7 +112254,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-8631a8b6edf7\""
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -76687,32 +112283,30 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3/commit-unstaged-part",
+ "id": "operations/s3/get-if-modified-since-past",
"profile": "s3",
"lane": "core",
- "purpose": "commit unstaged part",
+ "purpose": "Read an object modified since a past date",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-6d60d5bbaa47\"",
- "number": 1
- },
- {
- "etag": "\"fixture-db71b2c0257c\"",
- "number": 3
- }
- ],
- "upload_id": "fixture-upload+/276ca18046f9="
+ "if_modified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -76724,7 +112318,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -76732,23 +112326,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"3\"fixture-db71b2c0257c\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/if-modified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
}
}
],
@@ -76757,18 +112351,19 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidPartFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
},
{
@@ -76778,7 +112373,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -76786,23 +112381,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-db71b2c0257c\"3"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
+ }
+ },
+ {
+ "at": "/headers/if-modified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
}
}
],
@@ -76811,18 +112414,20 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidPartFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
}
]
@@ -76834,50 +112439,67 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "\"fixture-ad03f2ab332a\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidPart"
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/commit-wrong-etag",
+ "id": "operations/s3/get-if-modified-since-unchanged",
"profile": "s3",
"lane": "core",
- "purpose": "commit wrong etag",
+ "purpose": "Report an object not changed since the If-Modified-Since date as 304 Not Modified, not as an error of the service or an empty object",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-db71b2c0257c\"",
- "number": 1
- },
- {
- "etag": "\"fixture-32b70ae425ac\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/276ca18046f9="
+ "if_modified_since": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -76889,7 +112511,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -76897,23 +112519,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-db71b2c0257c\"2\"fixture-32b70ae425ac\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/if-modified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "Mon, 01 Jan 2024 00:00:00 GMT"
}
}
],
@@ -76922,18 +112544,17 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 304,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidPartFixture error"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
},
{
@@ -76943,7 +112564,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -76951,23 +112572,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-db71b2c0257c\"1\"fixture-32b70ae425ac\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
+ }
+ },
+ {
+ "at": "/headers/if-modified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "Mon, 01 Jan 2024 00:00:00 GMT"
}
}
],
@@ -76976,18 +112605,17 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 304,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidPartFixture error"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
]
@@ -77007,42 +112635,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidPart"
+ "value": 304
}
}
],
"refusal": null
},
{
- "id": "operations/s3/commit",
+ "id": "operations/s3/get-if-modified-since-invalid",
"profile": "s3",
"lane": "core",
- "purpose": "commit",
+ "purpose": "Read an object when If-Modified-Since is not an HTTP date, which S3 ignores. A client may refuse the date instead",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-6d60d5bbaa47\"",
- "number": 1
- },
- {
- "etag": "\"fixture-32b70ae425ac\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/276ca18046f9="
+ "if_modified_since": "not a date",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -77054,7 +112664,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -77062,23 +112672,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/if-modified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "not a date"
}
}
],
@@ -77089,17 +112699,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
},
{
@@ -77109,7 +112719,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -77117,23 +112727,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
+ }
+ },
+ {
+ "at": "/headers/if-modified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "not a date"
}
}
],
@@ -77142,19 +112760,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
}
]
@@ -77174,7 +112793,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ae1b6d1d32ce\""
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -77187,35 +112822,55 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
],
- "refusal": null
- },
- {
- "id": "operations/s3/commit-200-internal-error",
- "profile": "s3",
- "lane": "core",
- "purpose": "Report a completion answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
- "sources": [
- "https://repost.aws/knowledge-center/s3-resolve-200-internalerror",
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html",
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html"
- ],
- "origin": "transient",
- "call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-6d60d5bbaa47\"",
- "number": 1
- },
- {
- "etag": "\"fixture-32b70ae425ac\"",
- "number": 2
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
}
- ],
- "upload_id": "fixture-upload+/276ca18046f9="
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "if_modified_since"
+ }
+ }
+ ],
+ "decline_permitted": true
+ },
+ {
+ "id": "operations/s3/get-content-encoding-gzip",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Return the stored gzip bytes and Content-Encoding: gzip without decoding them",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -77227,7 +112882,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -77235,23 +112890,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": ""
}
}
],
@@ -77262,16 +112909,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-encoding": "gzip",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ }
}
},
{
@@ -77281,7 +112930,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -77289,23 +112938,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -77314,22 +112963,102 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-encoding": "gzip",
+ "content-range": "bytes 0-41/42",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ }
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 42
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ }
},
+ {
+ "at": "/value/content_encoding",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "gzip"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/get-content-properties",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Return the stored content properties from a GET",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -77339,7 +113068,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -77347,23 +113076,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": ""
}
}
],
@@ -77374,16 +113095,20 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "cache-control": "max-age=3600",
+ "content-disposition": "attachment; filename=\"report.txt\"",
+ "content-language": "nl-NL",
+ "content-type": "text/plain; charset=utf-8",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
},
{
@@ -77393,7 +113118,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -77401,23 +113126,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
}
],
@@ -77426,23 +113151,120 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "cache-control": "max-age=3600",
+ "content-disposition": "attachment; filename=\"report.txt\"",
+ "content-language": "nl-NL",
+ "content-range": "bytes 0-29/30",
+ "content-type": "text/plain; charset=utf-8",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain; charset=utf-8"
+ }
+ },
+ {
+ "at": "/value/content_language",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "nl-NL"
+ }
+ },
+ {
+ "at": "/value/content_disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename=\"report.txt\""
+ }
},
+ {
+ "at": "/value/cache_control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/head-committed",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "head committed",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "head"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -77452,7 +113274,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "HEAD"
}
},
{
@@ -77464,19 +113286,11 @@
}
},
{
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
- }
- },
- {
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": ""
}
}
],
@@ -77487,75 +113301,83 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5242886",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ae1b6d1d32ce\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "POST"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
- }
- },
- {
- "at": "/query/uploadId",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-upload+/276ca18046f9="
- }
+ "encoding": "base64",
+ "data": ""
}
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ae1b6d1d32ce\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 5242886
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
},
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/head-metadata",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "head metadata",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/metadata/object.txt",
+ "op": "head"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -77565,7 +113387,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "HEAD"
}
},
{
@@ -77573,23 +113395,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ "value": "/fixture/object-tests/metadata/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": ""
}
}
],
@@ -77600,18 +113414,98 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-name": "value",
+ "x-amz-meta-second": "2"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "name": "value",
+ "second": "2"
+ }
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/head-missing",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report a HEAD answered 404 as not_found or missing. Its answer has no body, so it cannot say whether the object or the bucket is absent",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/read/absent.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -77619,7 +113513,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "HEAD"
}
},
{
@@ -77627,23 +113521,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ "value": "/fixture/object-tests/read/absent.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": ""
}
}
],
@@ -77652,7 +113538,7 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
@@ -77660,15 +113546,58 @@
}
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
},
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "not_found",
+ "missing"
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/head",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "head",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "head"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -77678,7 +113607,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "HEAD"
}
},
{
@@ -77686,23 +113615,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": ""
}
}
],
@@ -77713,18 +113634,85 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/head-content-properties",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Return the stored content properties from a HEAD",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/read/object.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -77732,7 +113720,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "HEAD"
}
},
{
@@ -77740,23 +113728,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": ""
}
}
],
@@ -77767,21 +113747,111 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "cache-control": "max-age=3600",
+ "content-disposition": "attachment; filename=\"report.txt\"",
+ "content-language": "nl-NL",
+ "content-length": "30",
+ "content-type": "text/plain; charset=utf-8",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain; charset=utf-8"
+ }
+ },
+ {
+ "at": "/value/content_language",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "nl-NL"
+ }
+ },
+ {
+ "at": "/value/content_disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename=\"report.txt\""
+ }
},
+ {
+ "at": "/value/cache_control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/head-if-unmodified-since-past",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
+ "op": "head"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -77791,7 +113861,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "HEAD"
}
},
{
@@ -77799,23 +113869,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/if-unmodified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
}
}
],
@@ -77824,20 +113894,55 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 412,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
}
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/head-storage-class",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Read the storage class of an object",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html"
+ ],
+ "call": {
+ "key": "object-tests/classes/object.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -77845,7 +113950,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "HEAD"
}
},
{
@@ -77853,23 +113958,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ "value": "/fixture/object-tests/classes/object.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": ""
}
}
],
@@ -77880,20 +113977,20 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-storage-class": "STANDARD_IA"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -77902,39 +113999,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/code",
+ "at": "/value/storage_class",
"optional": false,
"rule": {
"is": "equal",
- "value": "InternalError"
+ "value": "STANDARD_IA"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/complete-multipart-200-error",
+ "id": "operations/s3/head-key-question",
"profile": "s3",
"lane": "core",
- "purpose": "complete multipart 200 error",
+ "purpose": "head, with the key \"question?mark.txt\"",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "transient",
"call": {
- "key": "object",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"part\"",
- "number": 1
- }
- ],
- "upload_id": "upload+/="
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -77946,7 +114035,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "HEAD"
}
},
{
@@ -77954,23 +114043,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/fixture/object-tests/keys/question?mark.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "upload+/="
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"part\""
+ "value": ""
}
}
],
@@ -77981,21 +114062,85 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkludmFsaWRQYXJ0PC9Db2RlPjxNZXNzYWdlPmZpeHR1cmUgZXJyb3I8L01lc3NhZ2U+PC9FcnJvcj4="
- },
- "framing": "chunked"
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/head-key-hash",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "head, with the key \"hash#tag.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -78003,7 +114148,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "HEAD"
}
},
{
@@ -78011,23 +114156,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/fixture/object-tests/keys/hash#tag.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "upload+/="
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"part\"1"
+ "value": ""
}
}
],
@@ -78038,19 +114175,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkludmFsaWRQYXJ0PC9Db2RlPjxNZXNzYWdlPmZpeHR1cmUgZXJyb3I8L01lc3NhZ2U+PC9FcnJvcj4="
- },
- "framing": "chunked"
+ "data": ""
+ }
}
}
]
@@ -78062,42 +114198,58 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/code",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidPart"
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3/commit-key-question",
+ "id": "operations/s3/head-key-percent",
"profile": "s3",
"lane": "core",
- "purpose": "commit, with the key \"question?mark.txt\"",
+ "purpose": "head, with the key \"percent%20.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/question?mark.txt",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-6d60d5bbaa47\"",
- "number": 1
- },
- {
- "etag": "\"fixture-32b70ae425ac\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/276ca18046f9="
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -78109,7 +114261,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "HEAD"
}
},
{
@@ -78117,23 +114269,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/question?mark.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ "value": "/fixture/object-tests/keys/percent%20.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": ""
}
}
],
@@ -78144,19 +114288,85 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/head-key-plus",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "head, with the key \"plus+plus.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -78164,7 +114374,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "HEAD"
}
},
{
@@ -78172,23 +114382,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/question?mark.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ "value": "/fixture/object-tests/keys/plus+plus.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": ""
}
}
],
@@ -78199,17 +114401,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -78229,7 +114432,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ae1b6d1d32ce\""
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -78247,27 +114466,16 @@
"refusal": null
},
{
- "id": "operations/s3/commit-key-hash",
+ "id": "operations/s3/head-key-space",
"profile": "s3",
"lane": "core",
- "purpose": "commit, with the key \"hash#tag.txt\"",
+ "purpose": "head, with the key \"space name.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/hash#tag.txt",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-6d60d5bbaa47\"",
- "number": 1
- },
- {
- "etag": "\"fixture-32b70ae425ac\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/276ca18046f9="
+ "key": "object-tests/keys/space name.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -78279,7 +114487,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "HEAD"
}
},
{
@@ -78287,23 +114495,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/hash#tag.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ "value": "/fixture/object-tests/keys/space name.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": ""
}
}
],
@@ -78314,19 +114514,85 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/head-key-non-ascii",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "head, with the key \"café/雪.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -78334,7 +114600,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "HEAD"
}
},
{
@@ -78342,23 +114608,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/hash#tag.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ "value": "/fixture/object-tests/keys/café/雪.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": ""
}
}
],
@@ -78369,17 +114627,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -78399,7 +114658,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ae1b6d1d32ce\""
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -78417,27 +114692,16 @@
"refusal": null
},
{
- "id": "operations/s3/commit-key-percent",
+ "id": "operations/s3/head-key-double-slash",
"profile": "s3",
"lane": "core",
- "purpose": "commit, with the key \"percent%20.txt\"",
+ "purpose": "head, with the key \"double//slash.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/percent%20.txt",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-6d60d5bbaa47\"",
- "number": 1
- },
- {
- "etag": "\"fixture-32b70ae425ac\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/276ca18046f9="
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -78449,7 +114713,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "HEAD"
}
},
{
@@ -78457,23 +114721,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/percent%20.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ "value": "/fixture/object-tests/keys/double//slash.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": ""
}
}
],
@@ -78484,19 +114740,85 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/head-key-trailing-slash",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "head, with the key \"trailing-slash/\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "head"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -78504,7 +114826,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "HEAD"
}
},
{
@@ -78512,23 +114834,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/percent%20.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ "value": "/fixture/object-tests/keys/trailing-slash/"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": ""
}
}
],
@@ -78539,17 +114853,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -78569,7 +114884,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ae1b6d1d32ce\""
+ "value": "\"fixture-ad03f2ab332a\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -78587,27 +114918,17 @@
"refusal": null
},
{
- "id": "operations/s3/commit-key-plus",
+ "id": "operations/s3/list-bad-marker",
"profile": "s3",
"lane": "core",
- "purpose": "commit, with the key \"plus+plus.txt\"",
+ "purpose": "Report S3's 400 InvalidArgument for a continuation token it did not issue",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/plus+plus.txt",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-6d60d5bbaa47\"",
- "number": 1
- },
- {
- "etag": "\"fixture-32b70ae425ac\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/276ca18046f9="
+ "continuation_token": "fixture-marker+/ce6f21ae951d=",
+ "op": "list_page",
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -78619,7 +114940,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -78627,23 +114948,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/plus+plus.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/ce6f21ae951d="
}
}
],
@@ -78652,17 +114989,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ "data": "\nInvalidArgumentFixture error"
},
"framing": "chunked"
}
@@ -78674,7 +115010,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -78682,23 +115018,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/plus+plus.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/ce6f21ae951d="
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -78707,17 +115067,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ "data": "\nInvalidArgumentThe continuation token provided is incorrectcontinuation-tokenNQMNJ1VWXJVB4568Xe4ibV4/CeMc0lPl/vnTn1PlV2EEGNHZ+ST6o8IyEOh1TYXGMx01Jf1TkbwfTtRpHhsL/Tjn/tA="
},
"framing": "chunked"
}
@@ -78731,53 +115090,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ae1b6d1d32ce\""
+ "value": 400
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "InvalidArgument"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/commit-key-space",
+ "id": "operations/s3/list-bucket-missing",
"profile": "s3",
"lane": "core",
- "purpose": "commit, with the key \"space name.txt\"",
+ "purpose": "Report 404 NoSuchBucket for a bucket that does not exist. A client reports it as container_not_found: the bucket or container is absent, not the object",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/space name.txt",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-6d60d5bbaa47\"",
- "number": 1
- },
- {
- "etag": "\"fixture-32b70ae425ac\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/276ca18046f9="
+ "op": "list_page",
+ "prefix": ""
},
"exchanges": [
{
@@ -78789,7 +115134,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -78797,23 +115142,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/space name.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
@@ -78822,17 +115175,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/space name.txtfixtureobject-tests/keys/space name.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ "data": "\nNoSuchBucketFixture error"
},
"framing": "chunked"
}
@@ -78844,7 +115196,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -78852,23 +115204,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/space name.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -78877,17 +115245,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/space name.txtfixtureobject-tests/keys/space name.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ "data": "\nNoSuchBucketThe specified bucket does not existno-such-bucket-object-testsD3APHS8Y67RT769N4yxkwV/1e8tBe6qQpZ/nVXK6SoorCzIGPjfs539Nq5RPVrfpF9lCuc/OPebqgIzKjrXkTAgalEM="
},
"framing": "chunked"
}
@@ -78901,53 +115268,48 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ae1b6d1d32ce\""
+ "value": 404
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "NoSuchBucket"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/commit-key-non-ascii",
+ "id": "operations/s3/list-delimited",
"profile": "s3",
"lane": "core",
- "purpose": "commit, with the key \"café/雪.txt\"",
+ "purpose": "Send the delimiter, and report the keys it groups as common prefixes, not as entries",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/café/雪.txt",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-6d60d5bbaa47\"",
- "number": 1
- },
- {
- "etag": "\"fixture-32b70ae425ac\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/276ca18046f9="
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -78959,7 +115321,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -78967,23 +115329,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/café/雪.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
}
}
],
@@ -79002,7 +115380,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ "data": "\nfixtureobject-tests/board/31000/falseobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARDobject-tests/board/nested/"
},
"framing": "chunked"
}
@@ -79014,7 +115392,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -79022,23 +115400,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/café/雪.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -79057,7 +115459,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ "data": "\nfixtureobject-tests/board/31000/urlfalseobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARDobject-tests/board/nested/"
},
"framing": "chunked"
}
@@ -79067,57 +115469,173 @@
],
"expect": [
{
- "at": "/outcome",
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-1d83e6eb69df\""
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/z.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-4d347fee6a7b\""
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "array_length",
+ "value": 2
}
},
{
- "at": "/value/etag",
+ "at": "/value/prefixes/0",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ae1b6d1d32ce\""
+ "value": "object-tests/board/nested/"
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/value/prefixes",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/commit-key-double-slash",
+ "id": "operations/s3/list-empty",
"profile": "s3",
"lane": "core",
- "purpose": "commit, with the key \"double//slash.txt\"",
+ "purpose": "Report a prefix with no objects as no entries, no prefixes and an empty continuation token",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/double//slash.txt",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-6d60d5bbaa47\"",
- "number": 1
- },
- {
- "etag": "\"fixture-32b70ae425ac\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/276ca18046f9="
+ "op": "list_page",
+ "prefix": "object-tests/nothing/"
},
"exchanges": [
{
@@ -79129,7 +115647,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -79137,23 +115655,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/double//slash.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/nothing/"
}
}
],
@@ -79172,7 +115698,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/double//slash.txtfixtureobject-tests/keys/double//slash.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ "data": "\nfixtureobject-tests/nothing/01000false"
},
"framing": "chunked"
}
@@ -79184,7 +115710,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -79192,23 +115718,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/double//slash.txt"
+ "value": "/fixture"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/nothing/"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -79227,7 +115769,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/double//slash.txtfixtureobject-tests/keys/double//slash.txt"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ "data": "\nfixtureobject-tests/nothing/01000urlfalse"
},
"framing": "chunked"
}
@@ -79245,49 +115787,43 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": "\"fixture-ae1b6d1d32ce\""
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/value/prefixes",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/commit-key-trailing-slash",
+ "id": "operations/s3/list-all-empty",
"profile": "s3",
"lane": "core",
- "purpose": "commit, with the key \"trailing-slash/\"",
+ "purpose": "Report an empty bucket as an empty listing",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html"
],
"call": {
- "key": "object-tests/keys/trailing-slash/",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-6d60d5bbaa47\"",
- "number": 1
- },
- {
- "etag": "\"fixture-32b70ae425ac\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/276ca18046f9="
+ "op": "list",
+ "prefix": ""
},
"exchanges": [
{
@@ -79299,7 +115835,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -79307,29 +115843,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/trailing-slash/"
+ "value": "/fixture"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-6d60d5bbaa47\"2\"fixture-32b70ae425ac\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
"status": 200,
@@ -79338,11 +115892,13 @@
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/trailing-slash/fixtureobject-tests/keys/trailing-slash/"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ "encoding": "base64",
+ "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PC9MaXN0QnVja2V0UmVzdWx0Pg=="
},
"framing": "chunked"
}
@@ -79354,7 +115910,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -79362,29 +115918,55 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/trailing-slash/"
+ "value": "/fixture"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-6d60d5bbaa47\"1\"fixture-32b70ae425ac\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
"status": 200,
@@ -79393,11 +115975,13 @@
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "\nhttps://fixture.invalid/fixture/object-tests/keys/trailing-slash/fixtureobject-tests/keys/trailing-slash/"fixture-ae1b6d1d32ce"E0gM19kR9Fk=FULL_OBJECT"
+ "encoding": "base64",
+ "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48L0xpc3RCdWNrZXRSZXN1bHQ+"
},
"framing": "chunked"
}
@@ -79415,38 +115999,27 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/keys",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ae1b6d1d32ce\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": []
}
}
],
"refusal": null
},
{
- "id": "operations/s3/delete-accepted",
+ "id": "operations/s3/list-xml-escaped",
"profile": "s3",
"lane": "core",
- "purpose": "delete accepted",
+ "purpose": "Read XML character references in listed names, such as & and <, or ask for encoding-type=url and decode the names",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html"
],
"call": {
- "key": "object-tests/remove/present.txt",
- "op": "delete"
+ "op": "list",
+ "prefix": ""
},
"exchanges": [
{
@@ -79458,7 +116031,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -79466,7 +116039,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
+ "value": "/fixture"
}
},
{
@@ -79476,56 +116049,56 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
"encoding": "base64",
- "data": ""
- }
+ "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PENvbnRlbnRzPjxLZXk+YSZhbXA7YjwvS2V5PjxMYXN0TW9kaWZpZWQ+MjAyNC0wMS0wMVQwMDowMDowMC4wMDBaPC9MYXN0TW9kaWZpZWQ+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48S2V5PmMmbHQ7ZDwvS2V5PjxMYXN0TW9kaWZpZWQ+MjAyNC0wMS0wMVQwMDowMDowMC4wMDBaPC9MYXN0TW9kaWZpZWQ+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjwvTGlzdEJ1Y2tldFJlc3VsdD4="
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/delete-accepted-key-question",
- "profile": "s3",
- "lane": "core",
- "purpose": "delete accepted, with the key \"question?mark.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/question?mark.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -79533,7 +116106,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -79541,7 +116114,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/question?mark.txt"
+ "value": "/fixture"
}
},
{
@@ -79551,24 +116124,62 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
"encoding": "base64",
- "data": ""
- }
+ "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48Q29udGVudHM+PEtleT5hJTI2YjwvS2V5PjxMYXN0TW9kaWZpZWQ+MjAyNC0wMS0wMVQwMDowMDowMC4wMDBaPC9MYXN0TW9kaWZpZWQ+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48S2V5PmMlM0NkPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxTaXplPjU8L1NpemU+PFN0b3JhZ2VDbGFzcz5TVEFOREFSRDwvU3RvcmFnZUNsYXNzPjwvQ29udGVudHM+PC9MaXN0QnVja2V0UmVzdWx0Pg=="
+ },
+ "framing": "chunked"
}
}
]
@@ -79582,21 +116193,32 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ "a&b",
+ "c\nfixtureobject-tests/names/101000falseobject-tests/names/100%-name.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/a&b.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/back\\slash.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/café.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/ctrl.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/hash#tag.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/percent%20.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/plus+plus.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/q?mark.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/space name.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/delete-accepted-key-percent",
- "profile": "s3",
- "lane": "core",
- "purpose": "delete accepted, with the key \"percent%20.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/percent%20.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -79683,7 +116293,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -79691,7 +116301,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/percent%20.txt"
+ "value": "/fixture"
}
},
{
@@ -79701,6 +116311,30 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
"allow_headers": [
@@ -79708,17 +116342,19 @@
],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/names/101000urlfalseobject-tests/names/100%25-name.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/a%26b.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/back%5Cslash.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/caf%C3%A9.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/ctrl%01.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/hash%23tag.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/percent%2520.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/plus%2Bplus.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/q%3Fmark.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/space+name.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
}
]
@@ -79726,252 +116362,622 @@
],
"expect": [
{
- "at": "/outcome",
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/100%-name.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/a&b.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/back\\slash.txt"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/café.txt"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/ctrl\u0001.txt"
+ }
+ },
+ {
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/4/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/hash#tag.txt"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/5/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/5/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/percent%20.txt"
+ }
+ },
+ {
+ "at": "/value/entries/6/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/6/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/6/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/plus+plus.txt"
+ }
+ },
+ {
+ "at": "/value/entries/7/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/7/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/7/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/8/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/q?mark.txt"
+ }
+ },
+ {
+ "at": "/value/entries/8/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/8/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/8/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/8/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/8/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/9/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "object-tests/names/space name.txt"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/delete-accepted-key-plus",
- "profile": "s3",
- "lane": "core",
- "purpose": "delete accepted, with the key \"plus+plus.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/plus+plus.txt",
- "op": "delete"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/keys/plus+plus.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 204,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/9/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/9/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "\"fixture-6c30b210f0a8\""
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/delete-accepted-key-space",
- "profile": "s3",
- "lane": "core",
- "purpose": "delete accepted, with the key \"space name.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/space name.txt",
- "op": "delete"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/keys/space name.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 204,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/9/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/9/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/9/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": "ok"
+ "is": "array_length",
+ "value": 10
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/delete-accepted-key-non-ascii",
- "profile": "s3",
- "lane": "core",
- "purpose": "delete accepted, with the key \"café/雪.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/café/雪.txt",
- "op": "delete"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/keys/café/雪.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 204,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/delete-accepted-key-double-slash",
+ "id": "operations/s3/list-first-page",
"profile": "s3",
"lane": "core",
- "purpose": "delete accepted, with the key \"double//slash.txt\"",
+ "purpose": "Send page_size as max-keys, and report a truncated page's NextContinuationToken as the continuation token",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/double//slash.txt",
- "op": "delete"
+ "op": "list_page",
+ "page_size": 2,
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -79983,7 +116989,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -79991,7 +116997,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/double//slash.txt"
+ "value": "/fixture"
}
},
{
@@ -80001,80 +117007,29 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 204,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/delete-accepted-key-trailing-slash",
- "profile": "s3",
- "lane": "core",
- "purpose": "delete accepted, with the key \"trailing-slash/\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/trailing-slash/",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "2"
}
},
{
- "at": "/path",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/trailing-slash/"
+ "value": "object-tests/board/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/max-keys",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "2"
}
}
],
@@ -80083,49 +117038,21 @@
],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/fixture-marker+/e389f71e4c3c=22trueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-a1cfb9bcbc61"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/delete-bucket",
- "profile": "s3",
- "lane": "core",
- "purpose": "Delete an empty bucket",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html"
- ],
- "call": {
- "bucket": "object-tests-deleted",
- "op": "s3.delete_bucket"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -80133,7 +117060,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -80141,7 +117068,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests-deleted"
+ "value": "/fixture"
}
},
{
@@ -80151,98 +117078,37 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 204,
- "headers": {
- "date": {
- "from": "now"
- }
},
- "body": {
- "encoding": "empty"
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/delete-many",
- "profile": "s3",
- "lane": "core",
- "purpose": "Delete several objects in one request and report each result",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html"
- ],
- "call": {
- "keys": [
- "object-tests/batch/a.txt",
- "object-tests/batch/b.txt",
- "object-tests/batch/absent.txt"
- ],
- "op": "delete_many"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "2"
}
},
{
- "at": "/path",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": ""
+ "value": "object-tests/board/"
}
},
{
- "at": "/query/delete",
+ "at": "/query/max-keys",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "2"
}
},
{
- "at": "/headers/x-amz-checksum-crc64nvme",
+ "at": "/query/encoding-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "[A-Za-z0-9+/]{11}="
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -80256,11 +117122,12 @@
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nobject-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txt"
+ "data": "\nfixtureobject-tests/board/fixture-marker+/e389f71e4c3c=22urltrueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-a1cfb9bcbc61"CRC64NVMEFULL_OBJECT1STANDARD"
},
"framing": "chunked"
}
@@ -80278,387 +117145,159 @@
}
},
{
- "at": "/value/deleted",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": [
- "object-tests/batch/a.txt",
- "object-tests/batch/b.txt",
- "object-tests/batch/absent.txt"
- ]
+ "value": "object-tests/board/a.txt"
}
},
{
- "at": "/value/errors",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": []
+ "value": 8
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/delete-slow-down",
- "profile": "s3",
- "lane": "core",
- "purpose": "Report a 503 SlowDown answer as an error, after at most 5 retries",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
- ],
- "origin": "transient",
- "call": {
- "key": "object-tests/remove/present.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
- }
- }
- ]
},
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
- }
- }
- ],
- "optional": true
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-1d83e6eb69df\""
+ }
},
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
- }
- }
- ],
- "optional": true
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
},
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
- }
- }
- ],
- "optional": true
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
},
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
- }
- }
- ],
- "optional": true
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
},
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/remove/present.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
- }
- }
- ],
- "optional": true
- }
- ],
- "expect": [
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/nested/c.txt"
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": 1
}
},
{
- "at": "/status",
+ "at": "/value/entries/1/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 503
+ "value": "\"fixture-a1cfb9bcbc61\""
}
},
{
- "at": "/code",
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "SlowDown"
+ "value": "fixture-marker+/e389f71e4c3c="
}
}
],
"refusal": null
},
{
- "id": "operations/s3/delete-bucket-missing",
+ "id": "operations/s3/list-service-unavailable",
"profile": "s3",
"lane": "core",
- "purpose": "delete bucket missing",
+ "purpose": "Report a 503 ServiceUnavailable answer as an error, after at most 5 retries",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
],
+ "origin": "transient",
"call": {
- "key": "object.txt",
- "op": "delete"
+ "op": "list_page",
+ "page_size": 2,
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -80670,7 +117309,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -80678,7 +117317,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object.txt"
+ "value": "/fixture"
}
},
{
@@ -80688,6 +117327,30 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
}
],
"allow_headers": [
@@ -80695,67 +117358,20 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 503,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nNoSuchBucketFixture error"
- },
- "framing": "chunked"
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "NoSuchBucket"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/delete-if-match-current",
- "profile": "s3",
- "lane": "core",
- "purpose": "delete if match current",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "if_match": "\"fixture-6c30b210f0a8\"",
- "key": "object-tests/remove/conditional.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
+ }
+ },
{
"request": [
{
@@ -80763,7 +117379,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -80771,7 +117387,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/conditional.txt"
+ "value": "/fixture"
}
},
{
@@ -80783,86 +117399,35 @@
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
+ "value": "2"
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 204,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/delete-missing",
- "profile": "s3",
- "lane": "core",
- "purpose": "delete missing",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/remove/absent.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "object-tests/board/"
}
},
{
- "at": "/path",
+ "at": "/query/max-keys",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/absent.txt"
+ "value": "2"
}
},
{
- "at": "/body_base64",
+ "at": "/query/encoding-type",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "url"
}
}
],
@@ -80871,48 +117436,22 @@
],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 503,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/delete-precondition-failed",
- "profile": "s3",
- "lane": "core",
- "purpose": "delete precondition failed",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "if_match": "\"fixture-db71b2c0257c\"",
- "key": "object-tests/remove/conditional.txt",
- "op": "delete"
- },
- "exchanges": [
+ },
{
"alternatives": [
{
@@ -80922,7 +117461,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -80930,7 +117469,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/conditional.txt"
+ "value": "/fixture"
}
},
{
@@ -80942,11 +117481,27 @@
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-db71b2c0257c\""
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
}
}
],
@@ -80955,7 +117510,7 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -80964,57 +117519,11 @@
},
"body": {
"encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
},
"framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PreconditionFailed"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/delete-unauthenticated",
- "profile": "s3",
- "lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/remove/absent.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -81022,7 +117531,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -81030,7 +117539,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/remove/absent.txt"
+ "value": "/fixture"
}
},
{
@@ -81040,6 +117549,38 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
"allow_headers": [
@@ -81047,7 +117588,7 @@
],
"allow_query": [],
"response": {
- "status": 403,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -81056,55 +117597,14 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidAccessKeyIdFixture error"
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 403
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidAccessKeyId"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-before-commit",
- "profile": "s3",
- "lane": "core",
- "purpose": "get before commit",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/object.bin",
- "op": "get"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -81122,7 +117622,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture"
}
},
{
@@ -81132,6 +117632,30 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
}
],
"allow_headers": [
@@ -81139,7 +117663,7 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -81148,7 +117672,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchKeyFixture error"
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
},
"framing": "chunked"
}
@@ -81168,7 +117692,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture"
}
},
{
@@ -81180,11 +117704,35 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -81193,7 +117741,7 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -81202,55 +117750,14 @@
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchKeyFixture error"
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "NoSuchKey"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-bucket-missing",
- "profile": "s3",
- "lane": "core",
- "purpose": "get bucket missing",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object.txt",
- "op": "get"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -81268,7 +117775,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object.txt"
+ "value": "/fixture"
}
},
{
@@ -81278,6 +117785,30 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
}
],
"allow_headers": [
@@ -81285,7 +117816,7 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -81294,7 +117825,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchBucketFixture error"
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
},
"framing": "chunked"
}
@@ -81314,7 +117845,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object.txt"
+ "value": "/fixture"
}
},
{
@@ -81326,11 +117857,35 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -81339,7 +117894,7 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -81348,58 +117903,14 @@
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchBucketFixture error"
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "NoSuchBucket"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-committed-tail",
- "profile": "s3",
- "lane": "core",
- "purpose": "get committed tail",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/object.bin",
- "op": "get",
- "range": {
- "suffix": 10
- }
- },
- "exchanges": [
{
"alternatives": [
{
@@ -81417,7 +117928,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture"
}
},
{
@@ -81429,11 +117940,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=-10"
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
}
}
],
@@ -81442,30 +117969,36 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 503,
"headers": {
- "content-range": "bytes 5242876-5242885/5242886",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ae1b6d1d32ce\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": "Y2RlZnNlY29uZA=="
- }
+ "encoding": "utf8",
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
},
{
"request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
{
"at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/fixture"
}
},
{
@@ -81477,90 +118010,36 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=-10"
+ "value": "2"
}
},
{
- "at": "/method",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "object-tests/board/"
}
- }
- ],
- "then": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=5242876-5242885"
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ae1b6d1d32ce\""
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 5242876-5242885/5242886",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-ae1b6d1d32ce\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": "Y2RlZnNlY29uZA=="
- }
- }
- }
- ]
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
"allow_headers": [
@@ -81568,93 +118047,23 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 503,
"headers": {
- "content-length": "10",
- "content-range": "bytes 5242876-5242885/5242886",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ae1b6d1d32ce\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ae1b6d1d32ce\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 10
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
+ ],
+ "optional": true
},
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Y2RlZnNlY29uZA=="
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-empty",
- "profile": "s3",
- "lane": "core",
- "purpose": "get empty",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/write/empty.bin",
- "op": "get"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -81672,7 +118081,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/empty.bin"
+ "value": "/fixture"
}
},
{
@@ -81682,189 +118091,47 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-7d64e1430626\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- },
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "2"
}
},
{
- "at": "/path",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/empty.bin"
+ "value": "object-tests/board/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/max-keys",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "value": "2"
}
}
],
- "then": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/write/empty.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-7d64e1430626\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/write/empty.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/partNumber",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-7d64e1430626\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
"allow_headers": [
"content-type"
],
"allow_query": [],
"response": {
- "status": 416,
+ "status": 503,
"headers": {
- "content-range": "bytes */0",
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-7d64e1430626\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidRangeEmpty object0"
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
},
"framing": "chunked"
}
@@ -81884,7 +118151,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/empty.bin"
+ "value": "/fixture"
}
},
{
@@ -81896,11 +118163,35 @@
}
},
{
- "at": "/query/partNumber",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -81909,22 +118200,22 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-7d64e1430626\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -81933,67 +118224,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-7d64e1430626\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 0
+ "value": "error"
}
},
{
- "at": "/value/content_type",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": 503
}
},
{
- "at": "/value/body_base64",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "ServiceUnavailable"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-if-match-current",
+ "id": "operations/s3/list-key-equal-to-prefix-delimited",
"profile": "s3",
"lane": "core",
- "purpose": "get if match current",
+ "purpose": "Report a key that equals the prefix as an entry, and the keys under it as a common prefix",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "if_match": "\"fixture-ad03f2ab332a\"",
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/exact"
},
"exchanges": [
{
@@ -82013,7 +118277,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -82025,11 +118289,27 @@
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/exact"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
}
}
],
@@ -82040,17 +118320,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/exact21000/falseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/"
+ },
+ "framing": "chunked"
}
},
{
@@ -82068,7 +118348,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -82080,19 +118360,35 @@
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
+ "value": "2"
}
},
{
- "at": "/headers/range",
+ "at": "/query/prefix",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "object-tests/exact"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -82101,20 +118397,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/exact21000/urlfalseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/"
+ },
+ "framing": "chunked"
}
}
]
@@ -82130,31 +118425,31 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
+ "value": "object-tests/exact"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 1
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -82165,28 +118460,73 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes/0",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": "object-tests/exact/"
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-if-none-match-other",
+ "id": "operations/s3/list-key-equal-to-prefix",
"profile": "s3",
"lane": "core",
- "purpose": "get if none match other",
+ "purpose": "Report a key that equals the prefix as an entry",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "if_none_match": "\"fixture-db71b2c0257c\"",
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "op": "list_page",
+ "prefix": "object-tests/exact"
},
"exchanges": [
{
@@ -82206,7 +118546,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -82218,11 +118558,19 @@
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-db71b2c0257c\""
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/exact"
}
}
],
@@ -82233,17 +118581,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/exact21000falseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/child2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
},
{
@@ -82261,7 +118609,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -82273,19 +118621,27 @@
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-db71b2c0257c\""
+ "value": "2"
}
},
{
- "at": "/headers/range",
+ "at": "/query/prefix",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "object-tests/exact"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -82294,20 +118650,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/exact21000urlfalseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/child2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
}
]
@@ -82323,31 +118678,31 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
+ "value": "object-tests/exact"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 1
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -82358,27 +118713,123 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": "object-tests/exact/child"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-key-with-hash",
+ "id": "operations/s3/list-max-keys-zero",
"profile": "s3",
"lane": "core",
- "purpose": "get key with hash",
+ "purpose": "Send page_size 0 as max-keys=0; S3 answers an empty page that is not truncated",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/names/hash#tag.txt",
- "op": "get"
+ "op": "list_page",
+ "page_size": 0,
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -82398,7 +118849,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/names/hash#tag.txt"
+ "value": "/fixture"
}
},
{
@@ -82408,6 +118859,30 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "0"
+ }
}
],
"allow_headers": [
@@ -82417,17 +118892,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/00false"
+ },
+ "framing": "chunked"
}
},
{
@@ -82445,7 +118920,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/names/hash#tag.txt"
+ "value": "/fixture"
}
},
{
@@ -82457,11 +118932,35 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "0"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -82470,20 +118969,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/00urlfalse"
+ },
+ "framing": "chunked"
}
}
]
@@ -82499,62 +118997,45 @@
}
},
{
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/size",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": 1
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/value/content_type",
+ "at": "/value/prefixes",
"optional": false,
"rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-key-with-percent",
+ "id": "operations/s3/list-next-page",
"profile": "s3",
"lane": "core",
- "purpose": "get key with percent",
+ "purpose": "Send the continuation token as continuation-token, a + in it as %2B, and report an empty token for the last page",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/names/percent%20.txt",
- "op": "get"
+ "continuation_token": "fixture-marker+/e389f71e4c3c=",
+ "op": "list_page",
+ "page_size": 2,
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -82574,7 +119055,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/names/percent%20.txt"
+ "value": "/fixture"
}
},
{
@@ -82584,6 +119065,38 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/e389f71e4c3c="
+ }
}
],
"allow_headers": [
@@ -82593,17 +119106,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/fixture-marker+/e389f71e4c3c=12falseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD"
+ },
+ "framing": "chunked"
}
},
{
@@ -82621,7 +119134,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/names/percent%20.txt"
+ "value": "/fixture"
}
},
{
@@ -82633,11 +119146,43 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/e389f71e4c3c="
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -82646,20 +119191,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/1Wq36E269xkU5vpIr/uygMR7VLsOKyVtFFrZWipPwts7vqVlbsEy3gO3B+OwtpoKO55bImoZ/vlKYSYk9sDrkkYTFp1MK3Yy/pV5VyzD7p/s=12urlfalseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD"
+ },
+ "framing": "chunked"
}
}
]
@@ -82675,31 +119219,31 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
+ "value": "object-tests/board/z.txt"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 2
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "\"fixture-4d347fee6a7b\""
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -82710,27 +119254,66 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-key-with-plus",
+ "id": "operations/s3/list-order-delimited",
"profile": "s3",
"lane": "core",
- "purpose": "get key with plus",
+ "purpose": "Report the entries and the common prefixes in the order S3 sends them, each list on its own",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/names/plus+plus.txt",
- "op": "get"
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/order/"
},
"exchanges": [
{
@@ -82750,7 +119333,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/names/plus+plus.txt"
+ "value": "/fixture"
}
},
{
@@ -82760,6 +119343,30 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
}
],
"allow_headers": [
@@ -82769,17 +119376,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/order/81000/falseobject-tests/order/A2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a-b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a02024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/é2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a/"
+ },
+ "framing": "chunked"
}
},
{
@@ -82797,7 +119404,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/names/plus+plus.txt"
+ "value": "/fixture"
}
},
{
@@ -82809,11 +119416,35 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -82822,20 +119453,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/order/81000/urlfalseobject-tests/order/A2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a-b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a02024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/%C3%A92024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a/"
+ },
+ "framing": "chunked"
}
}
]
@@ -82851,7 +119481,365 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/A"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a-b"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a0"
+ }
+ },
+ {
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/4/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/b"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/5/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/5/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/é"
+ }
+ },
+ {
+ "at": "/value/entries/6/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/6/etag",
"optional": false,
"rule": {
"is": "equal",
@@ -82859,54 +119847,84 @@
}
},
{
- "at": "/value/size",
- "optional": false,
+ "at": "/value/entries/6/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": 1
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/content_type",
- "optional": false,
+ "at": "/value/entries/6/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "binary/octet-stream"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/6/is_current_version",
"optional": true,
"rule": {
"is": "one_of",
"values": [
null,
- ""
+ false
]
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 7
+ }
+ },
+ {
+ "at": "/value/prefixes/0",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "object-tests/order/a/"
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-key-with-space",
+ "id": "operations/s3/list-order",
"profile": "s3",
"lane": "core",
- "purpose": "get key with space",
+ "purpose": "Report the entries in the order S3 sends them, without sorting them again",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/names/space name.txt",
- "op": "get"
+ "op": "list_page",
+ "prefix": "object-tests/order/"
},
"exchanges": [
{
@@ -82926,7 +119944,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/names/space name.txt"
+ "value": "/fixture"
}
},
{
@@ -82936,6 +119954,22 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/"
+ }
}
],
"allow_headers": [
@@ -82945,17 +119979,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/order/81000falseobject-tests/order/A2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a-b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a/b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a02024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/é2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
},
{
@@ -82973,7 +120007,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/names/space name.txt"
+ "value": "/fixture"
}
},
{
@@ -82985,11 +120019,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -82998,20 +120048,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/order/81000urlfalseobject-tests/order/A2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a-b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a/b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a02024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/%C3%A92024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
}
]
@@ -83027,7 +120076,23 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/A"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
@@ -83035,7 +120100,48 @@
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
"optional": false,
"rule": {
"is": "equal",
@@ -83043,15 +120149,15 @@
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/1/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/1/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -83062,516 +120168,407 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "object-tests/order/a-b"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-key-with-question",
- "profile": "s3",
- "lane": "core",
- "purpose": "get key question",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
- ],
- "call": {
- "key": "a?b",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/a?b"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
- },
- "body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/a?b"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 0-4/5",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
- },
- "body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/2/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": "object-tests/order/a.txt"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-key-with-non-ascii",
- "profile": "s3",
- "lane": "core",
- "purpose": "get key unicode",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
- ],
- "call": {
- "key": "café/雪",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/café/雪"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
- },
- "body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/café/雪"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 0-4/5",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
- },
- "body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/3/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": "object-tests/order/a/b"
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-key-with-separators",
- "profile": "s3",
- "lane": "core",
- "purpose": "get key separators",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
- ],
- "call": {
- "key": "a//b/",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/a//b/"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
- },
- "body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/a//b/"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 0-4/5",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
- },
- "body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/4/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": "object-tests/order/a0"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/5/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/5/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/b"
+ }
+ },
+ {
+ "at": "/value/entries/6/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/6/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/6/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/é"
+ }
+ },
+ {
+ "at": "/value/entries/7/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/7/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/7/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-metadata-empty-value",
+ "id": "operations/s3/list-page",
"profile": "s3",
"lane": "core",
- "purpose": "get metadata empty value",
+ "purpose": "List a prefix with ListObjectsV2 (list-type=2), and report each entry's key, size and ETag, quotes included",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/metadata/empty-value.txt",
- "op": "get"
+ "op": "list_page",
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -83591,7 +120588,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/empty-value.txt"
+ "value": "/fixture"
}
},
{
@@ -83599,7 +120596,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
}
}
],
@@ -83610,18 +120623,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-empty": ""
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/31000falseobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-a1cfb9bcbc61"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD"
+ },
+ "framing": "chunked"
}
},
{
@@ -83639,7 +120651,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/empty-value.txt"
+ "value": "/fixture"
}
},
{
@@ -83651,11 +120663,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -83664,21 +120692,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-empty": ""
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/31000urlfalseobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-a1cfb9bcbc61"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD"
+ },
+ "framing": "chunked"
}
}
]
@@ -83694,15 +120720,72 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
+ "value": "object-tests/board/a.txt"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-1d83e6eb69df\""
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/nested/c.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
"optional": false,
"rule": {
"is": "equal",
@@ -83710,15 +120793,15 @@
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/1/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "\"fixture-a1cfb9bcbc61\""
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/1/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -83729,37 +120812,122 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "object-tests/board/z.txt"
}
},
{
- "at": "/value/metadata",
+ "at": "/value/entries/2/size",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "empty": ""
- }
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-4d347fee6a7b\""
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-metadata-hyphen-name",
+ "id": "operations/s3/list-prefix-without-slash",
"profile": "s3",
"lane": "core",
- "purpose": "get metadata hyphen name",
+ "purpose": "Match the prefix as the start of the key, not as a directory: object-tests/boa matches object-tests/board/",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/metadata/hyphen-name.txt",
- "op": "get"
+ "op": "list_page",
+ "prefix": "object-tests/boa"
},
"exchanges": [
{
@@ -83779,7 +120947,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/hyphen-name.txt"
+ "value": "/fixture"
}
},
{
@@ -83789,6 +120957,22 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/boa"
+ }
}
],
"allow_headers": [
@@ -83798,18 +120982,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-not-valid": "1"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/boa31000falseobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-a1cfb9bcbc61"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD"
+ },
+ "framing": "chunked"
}
},
{
@@ -83827,7 +121010,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/hyphen-name.txt"
+ "value": "/fixture"
}
},
{
@@ -83839,11 +121022,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/boa"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -83852,21 +121051,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-not-valid": "1"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/boa31000urlfalseobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-a1cfb9bcbc61"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD"
+ },
+ "framing": "chunked"
}
}
]
@@ -83882,15 +121079,72 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
+ "value": "object-tests/board/a.txt"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-1d83e6eb69df\""
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/nested/c.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
"optional": false,
"rule": {
"is": "equal",
@@ -83898,15 +121152,15 @@
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/1/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "\"fixture-a1cfb9bcbc61\""
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/1/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -83917,37 +121171,123 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "object-tests/board/z.txt"
}
},
{
- "at": "/value/metadata",
+ "at": "/value/entries/2/size",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "not-valid": "1"
- }
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-4d347fee6a7b\""
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-metadata-punctuation-name",
+ "id": "operations/s3/list-separator-keys-delimited",
"profile": "s3",
"lane": "core",
- "purpose": "Report a metadata name that holds any character of an HTTP token.",
+ "purpose": "Group each key at the first delimiter after the prefix, even where the key repeats it or ends with it",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/metadata/punctuation-name.txt",
- "op": "get"
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/separators/"
},
"exchanges": [
{
@@ -83967,7 +121307,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/punctuation-name.txt"
+ "value": "/fixture"
}
},
{
@@ -83977,6 +121317,30 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
}
],
"allow_headers": [
@@ -83986,18 +121350,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-1a!#$%&'*+.^_`|~b": "1"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/separators/61000/falseobject-tests/separators/..leading2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/dot.2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/a.b/object-tests/separators/double/object-tests/separators/space /object-tests/separators/trailing/"
+ },
+ "framing": "chunked"
}
},
{
@@ -84015,7 +121378,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/punctuation-name.txt"
+ "value": "/fixture"
}
},
{
@@ -84027,11 +121390,35 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -84040,21 +121427,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-1a!#$%&'*+.^_`|~b": "1"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/separators/61000/urlfalseobject-tests/separators/..leading2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/dot.2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/a.b/object-tests/separators/double/object-tests/separators/space+/object-tests/separators/trailing/"
+ },
+ "framing": "chunked"
}
}
]
@@ -84070,7 +121455,23 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/..leading"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
@@ -84078,7 +121479,48 @@
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/dot."
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
"optional": false,
"rule": {
"is": "equal",
@@ -84086,15 +121528,15 @@
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/1/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/1/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -84105,37 +121547,97 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes/0",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "object-tests/separators/a.b/"
}
},
{
- "at": "/value/metadata",
+ "at": "/value/prefixes/1",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "1a!#$%&'*+.^_`|~b": "1"
- }
+ "value": "object-tests/separators/double/"
+ }
+ },
+ {
+ "at": "/value/prefixes/2",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/space /"
+ }
+ },
+ {
+ "at": "/value/prefixes/3",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/trailing/"
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 4
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-metadata-non-ascii-value",
+ "id": "operations/s3/list-separator-keys",
"profile": "s3",
"lane": "core",
- "purpose": "A general-purpose bucket returns a value outside ASCII as an RFC 2047 encoded word. Decode it, so é reads back as é.",
+ "purpose": "Report keys with leading dots, repeated slashes, a space and a trailing slash exactly as stored",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/metadata/non-ascii.txt",
- "op": "get"
+ "op": "list_page",
+ "prefix": "object-tests/separators/"
},
"exchanges": [
{
@@ -84155,7 +121657,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/non-ascii.txt"
+ "value": "/fixture"
}
},
{
@@ -84165,6 +121667,22 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/"
+ }
}
],
"allow_headers": [
@@ -84174,18 +121692,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?Q?caf=C3=A9?="
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/separators/61000falseobject-tests/separators/..leading2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/a.b/c2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/dot.2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/double//slash2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/space /x2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/trailing/2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
},
{
@@ -84203,7 +121720,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/non-ascii.txt"
+ "value": "/fixture"
}
},
{
@@ -84215,11 +121732,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -84228,21 +121761,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?Q?caf=C3=A9?="
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/separators/61000urlfalseobject-tests/separators/..leading2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/a.b/c2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/dot.2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/double//slash2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/space+/x2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/trailing/2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
}
]
@@ -84254,11 +121785,255 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/..leading"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/a.b/c"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/dot."
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/double//slash"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/space /x"
+ }
+ },
+ {
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/4/etag",
"optional": false,
"rule": {
"is": "equal",
@@ -84266,7 +122041,48 @@
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/trailing/"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
"optional": false,
"rule": {
"is": "equal",
@@ -84274,15 +122090,15 @@
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/5/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/5/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -84293,37 +122109,65 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/5/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": "MQ=="
+ "is": "array_length",
+ "value": 6
}
},
{
- "at": "/value/metadata",
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "value": "café"
- }
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-metadata-outside-latin-1",
+ "id": "operations/s3/list-unauthenticated",
"profile": "s3",
"lane": "core",
- "purpose": "Decode a base64 RFC 2047 encoded word, which S3 returns for text that is mostly outside ASCII.",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/metadata/outside-latin-1.txt",
- "op": "get"
+ "op": "list_page",
+ "prefix": "object-tests/"
},
"exchanges": [
{
@@ -84343,7 +122187,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/outside-latin-1.txt"
+ "value": "/fixture"
}
},
{
@@ -84353,6 +122197,22 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/"
+ }
}
],
"allow_headers": [
@@ -84360,20 +122220,18 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 403,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?B?6Zuq?="
+ }
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nInvalidAccessKeyIdFixture error"
+ },
+ "framing": "chunked"
}
},
{
@@ -84391,7 +122249,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/outside-latin-1.txt"
+ "value": "/fixture"
}
},
{
@@ -84403,11 +122261,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -84416,21 +122290,18 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 403,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?B?6Zuq?="
+ }
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nInvalidAccessKeyIdThe AWS Access Key Id you provided does not exist in our records.not-a-tokenD3AWMCZ2CJYZX2K4iNmdT7uJWoHQA6IHwWhIKos452Xw9yuRP9vkj83JKvDa5ZUSTJ5lBFHsh3LIS/1DkVBgdHG6g50="
+ },
+ "framing": "chunked"
}
}
]
@@ -84442,76 +122313,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "error"
}
},
{
- "at": "/value/body_base64",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": 403
}
},
{
- "at": "/value/metadata",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "value": "雪"
- }
+ "value": "InvalidAccessKeyId"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-metadata-split-encoded-words",
+ "id": "operations/s3/list-all-pages",
"profile": "s3",
"lane": "core",
- "purpose": "S3 returns a long value as several RFC 2047 encoded words, separated by spaces. Decode each and join them without the spaces.",
+ "purpose": "Follow each page's continuation token until a page is not truncated",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/metadata/split-encoded-words.txt",
- "op": "get"
+ "op": "list",
+ "page_size": 1,
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -84531,7 +122366,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/split-encoded-words.txt"
+ "value": "/fixture"
}
},
{
@@ -84541,6 +122376,30 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
}
],
"allow_headers": [
@@ -84550,18 +122409,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?= =?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?="
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=11trueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-626f61720000"CRC64NVMEFULL_OBJECT8STANDARD"
+ },
+ "framing": "chunked"
}
},
{
@@ -84579,7 +122437,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/split-encoded-words.txt"
+ "value": "/fixture"
}
},
{
@@ -84591,11 +122449,35 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -84604,104 +122486,23 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?= =?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?="
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=11urltrueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-626f61720000"CRC64NVMEFULL_OBJECT8STANDARD"
+ },
+ "framing": "chunked"
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MQ=="
- }
},
- {
- "at": "/value/metadata",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": {
- "value": "雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪"
- }
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-metadata-malformed-encoded-word",
- "profile": "s3",
- "lane": "core",
- "purpose": "Leave a value that only looks like an RFC 2047 encoded word as it is: =ZZ is no hexadecimal byte.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/metadata/malformed-encoded-word.txt",
- "op": "get"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -84719,7 +122520,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/malformed-encoded-word.txt"
+ "value": "/fixture"
}
},
{
@@ -84729,6 +122530,38 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/a11ba9e5001="
+ }
}
],
"allow_headers": [
@@ -84738,18 +122571,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?Q?caf=ZZ?="
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=fixture-marker+/a11ba9e5002=11trueobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
},
{
@@ -84767,7 +122599,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/malformed-encoded-word.txt"
+ "value": "/fixture"
}
},
{
@@ -84779,11 +122611,43 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/a11ba9e5001="
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -84792,104 +122656,23 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?Q?caf=ZZ?="
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=fixture-marker+/a11ba9e5002=11urltrueobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MQ=="
- }
},
- {
- "at": "/value/metadata",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": {
- "value": "=?UTF-8?Q?caf=ZZ?="
- }
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-metadata-replaced",
- "profile": "s3",
- "lane": "core",
- "purpose": "get metadata replaced",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/metadata/replaced.txt",
- "op": "get"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -84907,7 +122690,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/replaced.txt"
+ "value": "/fixture"
}
},
{
@@ -84917,6 +122700,38 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/a11ba9e5002="
+ }
}
],
"allow_headers": [
@@ -84926,17 +122741,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ea4c238956b1\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "Mg=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11falseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARD"
+ },
+ "framing": "chunked"
}
},
{
@@ -84954,7 +122769,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/replaced.txt"
+ "value": "/fixture"
}
},
{
@@ -84966,11 +122781,43 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/a11ba9e5002="
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -84979,20 +122826,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ea4c238956b1\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "Mg=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11urlfalseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARD"
+ },
+ "framing": "chunked"
}
}
]
@@ -85008,62 +122854,31 @@
}
},
{
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ea4c238956b1\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
+ "at": "/value/keys",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
+ "value": [
+ "object-tests/board/a.txt",
+ "object-tests/board/nested/c.txt",
+ "object-tests/board/z.txt"
]
}
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Mg=="
- }
}
],
"refusal": null
},
{
- "id": "operations/s3/get-metadata",
+ "id": "operations/s3/list-entry-properties",
"profile": "s3",
"lane": "core",
- "purpose": "get metadata",
+ "purpose": "Report each listed object's last-modified time as RFC 3339 in UTC, and its storage class",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/metadata/object.txt",
- "op": "get"
+ "op": "list_page",
+ "prefix": "object-tests/properties/"
},
"exchanges": [
{
@@ -85083,7 +122898,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/object.txt"
+ "value": "/fixture"
}
},
{
@@ -85093,6 +122908,22 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/properties/"
+ }
}
],
"allow_headers": [
@@ -85102,19 +122933,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-name": "value",
- "x-amz-meta-second": "2"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/properties/21000falseobject-tests/properties/infrequent.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2STANDARD_IAobject-tests/properties/standard.txt2024-02-03T04:05:06.000Z"fixture-5070726f0001"CRC64NVMEFULL_OBJECT3STANDARD"
+ },
+ "framing": "chunked"
}
},
{
@@ -85132,7 +122961,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/object.txt"
+ "value": "/fixture"
}
},
{
@@ -85144,11 +122973,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/properties/"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -85157,22 +123002,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-name": "value",
- "x-amz-meta-second": "2"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/properties/21000urlfalseobject-tests/properties/infrequent.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2STANDARD_IAobject-tests/properties/standard.txt2024-02-03T04:05:06.000Z"fixture-5070726f0001"CRC64NVMEFULL_OBJECT3STANDARD"
+ },
+ "framing": "chunked"
}
}
]
@@ -85188,31 +123030,47 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
+ "value": "object-tests/properties/infrequent.txt"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 2
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "\"fixture-5070726f0000\""
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/last_modified",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2024-01-02T03:04:05Z"
+ }
+ },
+ {
+ "at": "/value/entries/0/storage_class",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "STANDARD_IA"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -85223,215 +123081,139 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "object-tests/properties/standard.txt"
}
},
{
- "at": "/value/metadata",
+ "at": "/value/entries/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "name": "value",
- "second": "2"
- }
+ "value": 3
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-metadata-ignores-unknown-headers",
- "profile": "s3",
- "lane": "core",
- "purpose": "Surface user metadata; unknown headers must not become metadata.",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
- ],
- "call": {
- "key": "object",
- "op": "get"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-author": "Ada",
- "x-amz-request-id": "fixture-request-id",
- "x-unrelated": "not metadata"
- },
- "body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 0-4/5",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-author": "Ada",
- "x-amz-request-id": "fixture-request-id",
- "x-unrelated": "not metadata"
- },
- "body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-5070726f0001\""
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/1/last_modified",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "2024-02-03T04:05:06Z"
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/1/storage_class",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": "STANDARD"
}
},
{
- "at": "/value/metadata",
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "author": "Ada"
- }
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-missing",
+ "id": "operations/s3/list-checksum-algorithm",
"profile": "s3",
"lane": "core",
- "purpose": "get missing",
+ "purpose": "Report each listed object's checksum algorithm as one name; S3 keeps one checksum per object, the one a write sent or else CRC64NVME, and lists one ChecksumAlgorithm",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html",
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "key": "object-tests/read/absent.txt",
- "op": "get"
+ "op": "list_page",
+ "prefix": "object-tests/checksum-listing/"
},
"exchanges": [
{
@@ -85451,7 +123233,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/absent.txt"
+ "value": "/fixture"
}
},
{
@@ -85461,6 +123243,22 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/checksum-listing/"
+ }
}
],
"allow_headers": [
@@ -85468,16 +123266,17 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchKeyFixture error"
+ "data": "\nfixtureobject-tests/checksum-listing/21000falseobject-tests/checksum-listing/crc32.txt2024-01-01T00:00:00.000Z"fixture-636b736c0000"CRC32FULL_OBJECT3STANDARDobject-tests/checksum-listing/none.txt2024-01-01T00:00:00.000Z"fixture-636b736c0001"CRC64NVMEFULL_OBJECT4STANDARD"
},
"framing": "chunked"
}
@@ -85497,7 +123296,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/absent.txt"
+ "value": "/fixture"
}
},
{
@@ -85509,11 +123308,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/checksum-listing/"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -85522,16 +123337,17 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchKeyFixture error"
+ "data": "\nfixtureobject-tests/checksum-listing/21000urlfalseobject-tests/checksum-listing/crc32.txt2024-01-01T00:00:00.000Z"fixture-636b736c0000"CRC32FULL_OBJECT3STANDARDobject-tests/checksum-listing/none.txt2024-01-01T00:00:00.000Z"fixture-636b736c0001"CRC64NVMEFULL_OBJECT4STANDARD"
},
"framing": "chunked"
}
@@ -85545,40 +123361,178 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": "object-tests/checksum-listing/crc32.txt"
}
},
{
- "at": "/code",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "NoSuchKey"
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-636b736c0000\""
+ }
+ },
+ {
+ "at": "/value/entries/0/checksum_algorithm",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "CRC32"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/checksum-listing/none.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 4
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-636b736c0001\""
+ }
+ },
+ {
+ "at": "/value/entries/1/checksum_algorithm",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "CRC64NVME"
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-not-modified",
+ "id": "operations/s3/list-other-delimiter",
"profile": "s3",
"lane": "core",
- "purpose": "get not modified",
+ "purpose": "Send the delimiter the caller names. A general-purpose bucket groups keys at any delimiter, not only /; here a- groups a-1.txt and a-2.txt",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "if_none_match": "\"fixture-ad03f2ab332a\"",
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "delimiter": "-",
+ "op": "list_page",
+ "prefix": "object-tests/dashes/"
},
"exchanges": [
{
@@ -85598,7 +123552,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -85610,11 +123564,27 @@
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/dashes/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "-"
}
}
],
@@ -85623,17 +123593,19 @@
],
"allow_query": [],
"response": {
- "status": 304,
+ "status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\""
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/dashes/21000-falseobject-tests/dashes/b.txt2024-01-01T00:00:00.000Z"fixture-646173680000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/dashes/a-"
+ },
+ "framing": "chunked"
}
},
{
@@ -85651,7 +123623,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -85663,19 +123635,35 @@
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
+ "value": "2"
}
},
{
- "at": "/headers/range",
+ "at": "/query/prefix",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "object-tests/dashes/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "-"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -85684,17 +123672,19 @@
],
"allow_query": [],
"response": {
- "status": 304,
+ "status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\""
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/dashes/21000-urlfalseobject-tests/dashes/b.txt2024-01-01T00:00:00.000Z"fixture-646173680000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/dashes/a-"
+ },
+ "framing": "chunked"
}
}
]
@@ -85706,32 +123696,113 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 304
+ "value": "object-tests/dashes/b.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-646173680000\""
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes/0",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/dashes/a-"
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-precondition-failed",
+ "id": "operations/s3/list-prefix-special-characters",
"profile": "s3",
"lane": "core",
- "purpose": "get precondition failed",
+ "purpose": "Percent-encode the prefix in the query, a space as %20 and a plus as %2B, and decode the common prefixes of a URL-encoded listing as well as the keys",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "if_match": "\"fixture-db71b2c0257c\"",
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/odd a+b&c=d%é/"
},
"exchanges": [
{
@@ -85751,7 +123822,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -85763,11 +123834,27 @@
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-db71b2c0257c\""
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/odd a+b&c=d%é/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
}
}
],
@@ -85776,16 +123863,17 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
+ "data": "\nfixtureobject-tests/odd a+b&c=d%é/21000/falseobject-tests/odd a+b&c=d%é/x.txt2024-01-01T00:00:00.000Z"fixture-6f6464200000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/odd a+b&c=d%é/sub dir+/"
},
"framing": "chunked"
}
@@ -85805,7 +123893,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -85817,123 +123905,35 @@
}
},
{
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-db71b2c0257c\""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 412,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
- },
- "framing": "chunked"
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PreconditionFailed"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-range-inverted",
- "profile": "s3",
- "lane": "core",
- "purpose": "get range inverted",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 2,
- "start": 6
- }
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "2"
}
},
{
- "at": "/path",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "object-tests/odd a+b&c=d%é/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/delimiter",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "/"
}
},
{
- "at": "/headers/range",
+ "at": "/query/encoding-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=6-1"
+ "value": "url"
}
}
],
@@ -85944,17 +123944,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/odd+a%2Bb%26c%3Dd%25%C3%A9/21000/urlfalseobject-tests/odd+a%2Bb%26c%3Dd%25%C3%A9/x.txt2024-01-01T00:00:00.000Z"fixture-6f6464200000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/odd+a%2Bb%26c%3Dd%25%C3%A9/sub+dir%2B/"
+ },
+ "framing": "chunked"
}
}
]
@@ -85970,31 +123970,31 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
+ "value": "object-tests/odd a+b&c=d%é/x.txt"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 1
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "\"fixture-6f6464200000\""
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -86005,56 +124005,74 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "is": "array_length",
+ "value": 1
}
- }
- ],
- "refusal": [
+ },
{
- "at": "/outcome",
+ "at": "/value/prefixes/0",
"optional": false,
"rule": {
"is": "equal",
- "value": "refused"
+ "value": "object-tests/odd a+b&c=d%é/sub dir+/"
}
},
{
- "at": "/kind",
+ "at": "/value/prefixes",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": ".+"
+ "is": "array_length",
+ "value": 1
}
},
{
- "at": "/parameter",
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "range"
+ "value": ""
}
}
],
- "decline_permitted": true
+ "refusal": null
},
{
- "id": "operations/s3/get-range-not-satisfiable",
+ "id": "operations/s3/list-fetch-owner",
"profile": "s3",
"lane": "core",
- "purpose": "get range not satisfiable",
+ "purpose": "Ask for owners with fetch-owner=true, and report each listed object's owner ID",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "start": 40
- }
+ "fetch_owner": true,
+ "op": "list_page",
+ "prefix": "object-tests/owner/"
},
"exchanges": [
{
@@ -86074,7 +124092,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -86086,11 +124104,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=40-"
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/owner/"
+ }
+ },
+ {
+ "at": "/query/fetch-owner",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "true"
}
}
],
@@ -86099,16 +124133,17 @@
],
"allow_query": [],
"response": {
- "status": 416,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidRangeFixture error"
+ "data": "\nfixtureobject-tests/owner/11000falseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idSTANDARD"
},
"framing": "chunked"
}
@@ -86128,7 +124163,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -86140,115 +124175,35 @@
}
},
{
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=40-[1-9][0-9]{2,}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 416,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nInvalidRangeFixture error"
- },
- "framing": "chunked"
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 416
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidRange"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-range-past-the-end",
- "profile": "s3",
- "lane": "core",
- "purpose": "get range past the end",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 64,
- "start": 28
- }
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "2"
}
},
{
- "at": "/path",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "object-tests/owner/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/fetch-owner",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "true"
}
},
{
- "at": "/headers/range",
+ "at": "/query/encoding-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=28-63"
+ "value": "url"
}
}
],
@@ -86257,20 +124212,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 28-29/30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "Y3Q="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/owner/11000urlfalseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idSTANDARD"
+ },
+ "framing": "chunked"
}
}
]
@@ -86286,31 +124240,39 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
+ "value": "object-tests/owner/a.txt"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 2
+ "value": 1
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "\"fixture-6f776e650000\""
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/owner_id",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-owner-id"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -86321,31 +124283,65 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "Y3Q="
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-range-single-byte",
+ "id": "operations/s3/list-over-1000",
"profile": "s3",
"lane": "core",
- "purpose": "get range single byte",
+ "purpose": "List more keys than the service's default page of 1,000 by following the continuation token",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 1,
- "start": 0
- }
+ "op": "list",
+ "prefix": "object-tests/many/"
},
"exchanges": [
{
@@ -86365,7 +124361,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -86377,11 +124373,19 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=0-0"
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/many/"
}
}
],
@@ -86390,99 +124394,21 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-0/30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MA=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=10001000trueobject-tests/many/00002024-01-01T00:00:00.000Z"fixture-6d610000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00012024-01-01T00:00:00.000Z"fixture-6d610001"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00022024-01-01T00:00:00.000Z"fixture-6d610002"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00032024-01-01T00:00:00.000Z"fixture-6d610003"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00042024-01-01T00:00:00.000Z"fixture-6d610004"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00052024-01-01T00:00:00.000Z"fixture-6d610005"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00062024-01-01T00:00:00.000Z"fixture-6d610006"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00072024-01-01T00:00:00.000Z"fixture-6d610007"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00082024-01-01T00:00:00.000Z"fixture-6d610008"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00092024-01-01T00:00:00.000Z"fixture-6d610009"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00102024-01-01T00:00:00.000Z"fixture-6d61000a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00112024-01-01T00:00:00.000Z"fixture-6d61000b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00122024-01-01T00:00:00.000Z"fixture-6d61000c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00132024-01-01T00:00:00.000Z"fixture-6d61000d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00142024-01-01T00:00:00.000Z"fixture-6d61000e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00152024-01-01T00:00:00.000Z"fixture-6d61000f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00162024-01-01T00:00:00.000Z"fixture-6d610010"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00172024-01-01T00:00:00.000Z"fixture-6d610011"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00182024-01-01T00:00:00.000Z"fixture-6d610012"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00192024-01-01T00:00:00.000Z"fixture-6d610013"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00202024-01-01T00:00:00.000Z"fixture-6d610014"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00212024-01-01T00:00:00.000Z"fixture-6d610015"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00222024-01-01T00:00:00.000Z"fixture-6d610016"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00232024-01-01T00:00:00.000Z"fixture-6d610017"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00242024-01-01T00:00:00.000Z"fixture-6d610018"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00252024-01-01T00:00:00.000Z"fixture-6d610019"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00262024-01-01T00:00:00.000Z"fixture-6d61001a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00272024-01-01T00:00:00.000Z"fixture-6d61001b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00282024-01-01T00:00:00.000Z"fixture-6d61001c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00292024-01-01T00:00:00.000Z"fixture-6d61001d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00302024-01-01T00:00:00.000Z"fixture-6d61001e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00312024-01-01T00:00:00.000Z"fixture-6d61001f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00322024-01-01T00:00:00.000Z"fixture-6d610020"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00332024-01-01T00:00:00.000Z"fixture-6d610021"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00342024-01-01T00:00:00.000Z"fixture-6d610022"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00352024-01-01T00:00:00.000Z"fixture-6d610023"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00362024-01-01T00:00:00.000Z"fixture-6d610024"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00372024-01-01T00:00:00.000Z"fixture-6d610025"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00382024-01-01T00:00:00.000Z"fixture-6d610026"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00392024-01-01T00:00:00.000Z"fixture-6d610027"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00402024-01-01T00:00:00.000Z"fixture-6d610028"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00412024-01-01T00:00:00.000Z"fixture-6d610029"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00422024-01-01T00:00:00.000Z"fixture-6d61002a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00432024-01-01T00:00:00.000Z"fixture-6d61002b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00442024-01-01T00:00:00.000Z"fixture-6d61002c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00452024-01-01T00:00:00.000Z"fixture-6d61002d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00462024-01-01T00:00:00.000Z"fixture-6d61002e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00472024-01-01T00:00:00.000Z"fixture-6d61002f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00482024-01-01T00:00:00.000Z"fixture-6d610030"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00492024-01-01T00:00:00.000Z"fixture-6d610031"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00502024-01-01T00:00:00.000Z"fixture-6d610032"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00512024-01-01T00:00:00.000Z"fixture-6d610033"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00522024-01-01T00:00:00.000Z"fixture-6d610034"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00532024-01-01T00:00:00.000Z"fixture-6d610035"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00542024-01-01T00:00:00.000Z"fixture-6d610036"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00552024-01-01T00:00:00.000Z"fixture-6d610037"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00562024-01-01T00:00:00.000Z"fixture-6d610038"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00572024-01-01T00:00:00.000Z"fixture-6d610039"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00582024-01-01T00:00:00.000Z"fixture-6d61003a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00592024-01-01T00:00:00.000Z"fixture-6d61003b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00602024-01-01T00:00:00.000Z"fixture-6d61003c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00612024-01-01T00:00:00.000Z"fixture-6d61003d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00622024-01-01T00:00:00.000Z"fixture-6d61003e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00632024-01-01T00:00:00.000Z"fixture-6d61003f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00642024-01-01T00:00:00.000Z"fixture-6d610040"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00652024-01-01T00:00:00.000Z"fixture-6d610041"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00662024-01-01T00:00:00.000Z"fixture-6d610042"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00672024-01-01T00:00:00.000Z"fixture-6d610043"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00682024-01-01T00:00:00.000Z"fixture-6d610044"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00692024-01-01T00:00:00.000Z"fixture-6d610045"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00702024-01-01T00:00:00.000Z"fixture-6d610046"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00712024-01-01T00:00:00.000Z"fixture-6d610047"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00722024-01-01T00:00:00.000Z"fixture-6d610048"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00732024-01-01T00:00:00.000Z"fixture-6d610049"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00742024-01-01T00:00:00.000Z"fixture-6d61004a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00752024-01-01T00:00:00.000Z"fixture-6d61004b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00762024-01-01T00:00:00.000Z"fixture-6d61004c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00772024-01-01T00:00:00.000Z"fixture-6d61004d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00782024-01-01T00:00:00.000Z"fixture-6d61004e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00792024-01-01T00:00:00.000Z"fixture-6d61004f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00802024-01-01T00:00:00.000Z"fixture-6d610050"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00812024-01-01T00:00:00.000Z"fixture-6d610051"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00822024-01-01T00:00:00.000Z"fixture-6d610052"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00832024-01-01T00:00:00.000Z"fixture-6d610053"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00842024-01-01T00:00:00.000Z"fixture-6d610054"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00852024-01-01T00:00:00.000Z"fixture-6d610055"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00862024-01-01T00:00:00.000Z"fixture-6d610056"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00872024-01-01T00:00:00.000Z"fixture-6d610057"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00882024-01-01T00:00:00.000Z"fixture-6d610058"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00892024-01-01T00:00:00.000Z"fixture-6d610059"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00902024-01-01T00:00:00.000Z"fixture-6d61005a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00912024-01-01T00:00:00.000Z"fixture-6d61005b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00922024-01-01T00:00:00.000Z"fixture-6d61005c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00932024-01-01T00:00:00.000Z"fixture-6d61005d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00942024-01-01T00:00:00.000Z"fixture-6d61005e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00952024-01-01T00:00:00.000Z"fixture-6d61005f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00962024-01-01T00:00:00.000Z"fixture-6d610060"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00972024-01-01T00:00:00.000Z"fixture-6d610061"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00982024-01-01T00:00:00.000Z"fixture-6d610062"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00992024-01-01T00:00:00.000Z"fixture-6d610063"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01002024-01-01T00:00:00.000Z"fixture-6d610064"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01012024-01-01T00:00:00.000Z"fixture-6d610065"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01022024-01-01T00:00:00.000Z"fixture-6d610066"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01032024-01-01T00:00:00.000Z"fixture-6d610067"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01042024-01-01T00:00:00.000Z"fixture-6d610068"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01052024-01-01T00:00:00.000Z"fixture-6d610069"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01062024-01-01T00:00:00.000Z"fixture-6d61006a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01072024-01-01T00:00:00.000Z"fixture-6d61006b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01082024-01-01T00:00:00.000Z"fixture-6d61006c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01092024-01-01T00:00:00.000Z"fixture-6d61006d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01102024-01-01T00:00:00.000Z"fixture-6d61006e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01112024-01-01T00:00:00.000Z"fixture-6d61006f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01122024-01-01T00:00:00.000Z"fixture-6d610070"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01132024-01-01T00:00:00.000Z"fixture-6d610071"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01142024-01-01T00:00:00.000Z"fixture-6d610072"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01152024-01-01T00:00:00.000Z"fixture-6d610073"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01162024-01-01T00:00:00.000Z"fixture-6d610074"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01172024-01-01T00:00:00.000Z"fixture-6d610075"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01182024-01-01T00:00:00.000Z"fixture-6d610076"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01192024-01-01T00:00:00.000Z"fixture-6d610077"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01202024-01-01T00:00:00.000Z"fixture-6d610078"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01212024-01-01T00:00:00.000Z"fixture-6d610079"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01222024-01-01T00:00:00.000Z"fixture-6d61007a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01232024-01-01T00:00:00.000Z"fixture-6d61007b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01242024-01-01T00:00:00.000Z"fixture-6d61007c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01252024-01-01T00:00:00.000Z"fixture-6d61007d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01262024-01-01T00:00:00.000Z"fixture-6d61007e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01272024-01-01T00:00:00.000Z"fixture-6d61007f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01282024-01-01T00:00:00.000Z"fixture-6d610080"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01292024-01-01T00:00:00.000Z"fixture-6d610081"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01302024-01-01T00:00:00.000Z"fixture-6d610082"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01312024-01-01T00:00:00.000Z"fixture-6d610083"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01322024-01-01T00:00:00.000Z"fixture-6d610084"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01332024-01-01T00:00:00.000Z"fixture-6d610085"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01342024-01-01T00:00:00.000Z"fixture-6d610086"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01352024-01-01T00:00:00.000Z"fixture-6d610087"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01362024-01-01T00:00:00.000Z"fixture-6d610088"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01372024-01-01T00:00:00.000Z"fixture-6d610089"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01382024-01-01T00:00:00.000Z"fixture-6d61008a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01392024-01-01T00:00:00.000Z"fixture-6d61008b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01402024-01-01T00:00:00.000Z"fixture-6d61008c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01412024-01-01T00:00:00.000Z"fixture-6d61008d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01422024-01-01T00:00:00.000Z"fixture-6d61008e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01432024-01-01T00:00:00.000Z"fixture-6d61008f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01442024-01-01T00:00:00.000Z"fixture-6d610090"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01452024-01-01T00:00:00.000Z"fixture-6d610091"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01462024-01-01T00:00:00.000Z"fixture-6d610092"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01472024-01-01T00:00:00.000Z"fixture-6d610093"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01482024-01-01T00:00:00.000Z"fixture-6d610094"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01492024-01-01T00:00:00.000Z"fixture-6d610095"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01502024-01-01T00:00:00.000Z"fixture-6d610096"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01512024-01-01T00:00:00.000Z"fixture-6d610097"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01522024-01-01T00:00:00.000Z"fixture-6d610098"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01532024-01-01T00:00:00.000Z"fixture-6d610099"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01542024-01-01T00:00:00.000Z"fixture-6d61009a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01552024-01-01T00:00:00.000Z"fixture-6d61009b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01562024-01-01T00:00:00.000Z"fixture-6d61009c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01572024-01-01T00:00:00.000Z"fixture-6d61009d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01582024-01-01T00:00:00.000Z"fixture-6d61009e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01592024-01-01T00:00:00.000Z"fixture-6d61009f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01602024-01-01T00:00:00.000Z"fixture-6d6100a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01612024-01-01T00:00:00.000Z"fixture-6d6100a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01622024-01-01T00:00:00.000Z"fixture-6d6100a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01632024-01-01T00:00:00.000Z"fixture-6d6100a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01642024-01-01T00:00:00.000Z"fixture-6d6100a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01652024-01-01T00:00:00.000Z"fixture-6d6100a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01662024-01-01T00:00:00.000Z"fixture-6d6100a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01672024-01-01T00:00:00.000Z"fixture-6d6100a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01682024-01-01T00:00:00.000Z"fixture-6d6100a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01692024-01-01T00:00:00.000Z"fixture-6d6100a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01702024-01-01T00:00:00.000Z"fixture-6d6100aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01712024-01-01T00:00:00.000Z"fixture-6d6100ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01722024-01-01T00:00:00.000Z"fixture-6d6100ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01732024-01-01T00:00:00.000Z"fixture-6d6100ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01742024-01-01T00:00:00.000Z"fixture-6d6100ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01752024-01-01T00:00:00.000Z"fixture-6d6100af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01762024-01-01T00:00:00.000Z"fixture-6d6100b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01772024-01-01T00:00:00.000Z"fixture-6d6100b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01782024-01-01T00:00:00.000Z"fixture-6d6100b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01792024-01-01T00:00:00.000Z"fixture-6d6100b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01802024-01-01T00:00:00.000Z"fixture-6d6100b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01812024-01-01T00:00:00.000Z"fixture-6d6100b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01822024-01-01T00:00:00.000Z"fixture-6d6100b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01832024-01-01T00:00:00.000Z"fixture-6d6100b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01842024-01-01T00:00:00.000Z"fixture-6d6100b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01852024-01-01T00:00:00.000Z"fixture-6d6100b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01862024-01-01T00:00:00.000Z"fixture-6d6100ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01872024-01-01T00:00:00.000Z"fixture-6d6100bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01882024-01-01T00:00:00.000Z"fixture-6d6100bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01892024-01-01T00:00:00.000Z"fixture-6d6100bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01902024-01-01T00:00:00.000Z"fixture-6d6100be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01912024-01-01T00:00:00.000Z"fixture-6d6100bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01922024-01-01T00:00:00.000Z"fixture-6d6100c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01932024-01-01T00:00:00.000Z"fixture-6d6100c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01942024-01-01T00:00:00.000Z"fixture-6d6100c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01952024-01-01T00:00:00.000Z"fixture-6d6100c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01962024-01-01T00:00:00.000Z"fixture-6d6100c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01972024-01-01T00:00:00.000Z"fixture-6d6100c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01982024-01-01T00:00:00.000Z"fixture-6d6100c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01992024-01-01T00:00:00.000Z"fixture-6d6100c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02002024-01-01T00:00:00.000Z"fixture-6d6100c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02012024-01-01T00:00:00.000Z"fixture-6d6100c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02022024-01-01T00:00:00.000Z"fixture-6d6100ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02032024-01-01T00:00:00.000Z"fixture-6d6100cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02042024-01-01T00:00:00.000Z"fixture-6d6100cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02052024-01-01T00:00:00.000Z"fixture-6d6100cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02062024-01-01T00:00:00.000Z"fixture-6d6100ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02072024-01-01T00:00:00.000Z"fixture-6d6100cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02082024-01-01T00:00:00.000Z"fixture-6d6100d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02092024-01-01T00:00:00.000Z"fixture-6d6100d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02102024-01-01T00:00:00.000Z"fixture-6d6100d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02112024-01-01T00:00:00.000Z"fixture-6d6100d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02122024-01-01T00:00:00.000Z"fixture-6d6100d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02132024-01-01T00:00:00.000Z"fixture-6d6100d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02142024-01-01T00:00:00.000Z"fixture-6d6100d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02152024-01-01T00:00:00.000Z"fixture-6d6100d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02162024-01-01T00:00:00.000Z"fixture-6d6100d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02172024-01-01T00:00:00.000Z"fixture-6d6100d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02182024-01-01T00:00:00.000Z"fixture-6d6100da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02192024-01-01T00:00:00.000Z"fixture-6d6100db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02202024-01-01T00:00:00.000Z"fixture-6d6100dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02212024-01-01T00:00:00.000Z"fixture-6d6100dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02222024-01-01T00:00:00.000Z"fixture-6d6100de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02232024-01-01T00:00:00.000Z"fixture-6d6100df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02242024-01-01T00:00:00.000Z"fixture-6d6100e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02252024-01-01T00:00:00.000Z"fixture-6d6100e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02262024-01-01T00:00:00.000Z"fixture-6d6100e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02272024-01-01T00:00:00.000Z"fixture-6d6100e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02282024-01-01T00:00:00.000Z"fixture-6d6100e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02292024-01-01T00:00:00.000Z"fixture-6d6100e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02302024-01-01T00:00:00.000Z"fixture-6d6100e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02312024-01-01T00:00:00.000Z"fixture-6d6100e7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02322024-01-01T00:00:00.000Z"fixture-6d6100e8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02332024-01-01T00:00:00.000Z"fixture-6d6100e9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02342024-01-01T00:00:00.000Z"fixture-6d6100ea"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02352024-01-01T00:00:00.000Z"fixture-6d6100eb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02362024-01-01T00:00:00.000Z"fixture-6d6100ec"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02372024-01-01T00:00:00.000Z"fixture-6d6100ed"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02382024-01-01T00:00:00.000Z"fixture-6d6100ee"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02392024-01-01T00:00:00.000Z"fixture-6d6100ef"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02402024-01-01T00:00:00.000Z"fixture-6d6100f0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02412024-01-01T00:00:00.000Z"fixture-6d6100f1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02422024-01-01T00:00:00.000Z"fixture-6d6100f2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02432024-01-01T00:00:00.000Z"fixture-6d6100f3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02442024-01-01T00:00:00.000Z"fixture-6d6100f4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02452024-01-01T00:00:00.000Z"fixture-6d6100f5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02462024-01-01T00:00:00.000Z"fixture-6d6100f6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02472024-01-01T00:00:00.000Z"fixture-6d6100f7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02482024-01-01T00:00:00.000Z"fixture-6d6100f8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02492024-01-01T00:00:00.000Z"fixture-6d6100f9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02502024-01-01T00:00:00.000Z"fixture-6d6100fa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02512024-01-01T00:00:00.000Z"fixture-6d6100fb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02522024-01-01T00:00:00.000Z"fixture-6d6100fc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02532024-01-01T00:00:00.000Z"fixture-6d6100fd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02542024-01-01T00:00:00.000Z"fixture-6d6100fe"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02552024-01-01T00:00:00.000Z"fixture-6d6100ff"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02562024-01-01T00:00:00.000Z"fixture-6d610100"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02572024-01-01T00:00:00.000Z"fixture-6d610101"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02582024-01-01T00:00:00.000Z"fixture-6d610102"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02592024-01-01T00:00:00.000Z"fixture-6d610103"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02602024-01-01T00:00:00.000Z"fixture-6d610104"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02612024-01-01T00:00:00.000Z"fixture-6d610105"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02622024-01-01T00:00:00.000Z"fixture-6d610106"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02632024-01-01T00:00:00.000Z"fixture-6d610107"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02642024-01-01T00:00:00.000Z"fixture-6d610108"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02652024-01-01T00:00:00.000Z"fixture-6d610109"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02662024-01-01T00:00:00.000Z"fixture-6d61010a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02672024-01-01T00:00:00.000Z"fixture-6d61010b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02682024-01-01T00:00:00.000Z"fixture-6d61010c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02692024-01-01T00:00:00.000Z"fixture-6d61010d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02702024-01-01T00:00:00.000Z"fixture-6d61010e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02712024-01-01T00:00:00.000Z"fixture-6d61010f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02722024-01-01T00:00:00.000Z"fixture-6d610110"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02732024-01-01T00:00:00.000Z"fixture-6d610111"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02742024-01-01T00:00:00.000Z"fixture-6d610112"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02752024-01-01T00:00:00.000Z"fixture-6d610113"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02762024-01-01T00:00:00.000Z"fixture-6d610114"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02772024-01-01T00:00:00.000Z"fixture-6d610115"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02782024-01-01T00:00:00.000Z"fixture-6d610116"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02792024-01-01T00:00:00.000Z"fixture-6d610117"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02802024-01-01T00:00:00.000Z"fixture-6d610118"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02812024-01-01T00:00:00.000Z"fixture-6d610119"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02822024-01-01T00:00:00.000Z"fixture-6d61011a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02832024-01-01T00:00:00.000Z"fixture-6d61011b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02842024-01-01T00:00:00.000Z"fixture-6d61011c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02852024-01-01T00:00:00.000Z"fixture-6d61011d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02862024-01-01T00:00:00.000Z"fixture-6d61011e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02872024-01-01T00:00:00.000Z"fixture-6d61011f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02882024-01-01T00:00:00.000Z"fixture-6d610120"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02892024-01-01T00:00:00.000Z"fixture-6d610121"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02902024-01-01T00:00:00.000Z"fixture-6d610122"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02912024-01-01T00:00:00.000Z"fixture-6d610123"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02922024-01-01T00:00:00.000Z"fixture-6d610124"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02932024-01-01T00:00:00.000Z"fixture-6d610125"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02942024-01-01T00:00:00.000Z"fixture-6d610126"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02952024-01-01T00:00:00.000Z"fixture-6d610127"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02962024-01-01T00:00:00.000Z"fixture-6d610128"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02972024-01-01T00:00:00.000Z"fixture-6d610129"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02982024-01-01T00:00:00.000Z"fixture-6d61012a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02992024-01-01T00:00:00.000Z"fixture-6d61012b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03002024-01-01T00:00:00.000Z"fixture-6d61012c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03012024-01-01T00:00:00.000Z"fixture-6d61012d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03022024-01-01T00:00:00.000Z"fixture-6d61012e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03032024-01-01T00:00:00.000Z"fixture-6d61012f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03042024-01-01T00:00:00.000Z"fixture-6d610130"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03052024-01-01T00:00:00.000Z"fixture-6d610131"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03062024-01-01T00:00:00.000Z"fixture-6d610132"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03072024-01-01T00:00:00.000Z"fixture-6d610133"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03082024-01-01T00:00:00.000Z"fixture-6d610134"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03092024-01-01T00:00:00.000Z"fixture-6d610135"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03102024-01-01T00:00:00.000Z"fixture-6d610136"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03112024-01-01T00:00:00.000Z"fixture-6d610137"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03122024-01-01T00:00:00.000Z"fixture-6d610138"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03132024-01-01T00:00:00.000Z"fixture-6d610139"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03142024-01-01T00:00:00.000Z"fixture-6d61013a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03152024-01-01T00:00:00.000Z"fixture-6d61013b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03162024-01-01T00:00:00.000Z"fixture-6d61013c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03172024-01-01T00:00:00.000Z"fixture-6d61013d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03182024-01-01T00:00:00.000Z"fixture-6d61013e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03192024-01-01T00:00:00.000Z"fixture-6d61013f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03202024-01-01T00:00:00.000Z"fixture-6d610140"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03212024-01-01T00:00:00.000Z"fixture-6d610141"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03222024-01-01T00:00:00.000Z"fixture-6d610142"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03232024-01-01T00:00:00.000Z"fixture-6d610143"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03242024-01-01T00:00:00.000Z"fixture-6d610144"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03252024-01-01T00:00:00.000Z"fixture-6d610145"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03262024-01-01T00:00:00.000Z"fixture-6d610146"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03272024-01-01T00:00:00.000Z"fixture-6d610147"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03282024-01-01T00:00:00.000Z"fixture-6d610148"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03292024-01-01T00:00:00.000Z"fixture-6d610149"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03302024-01-01T00:00:00.000Z"fixture-6d61014a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03312024-01-01T00:00:00.000Z"fixture-6d61014b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03322024-01-01T00:00:00.000Z"fixture-6d61014c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03332024-01-01T00:00:00.000Z"fixture-6d61014d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03342024-01-01T00:00:00.000Z"fixture-6d61014e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03352024-01-01T00:00:00.000Z"fixture-6d61014f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03362024-01-01T00:00:00.000Z"fixture-6d610150"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03372024-01-01T00:00:00.000Z"fixture-6d610151"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03382024-01-01T00:00:00.000Z"fixture-6d610152"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03392024-01-01T00:00:00.000Z"fixture-6d610153"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03402024-01-01T00:00:00.000Z"fixture-6d610154"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03412024-01-01T00:00:00.000Z"fixture-6d610155"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03422024-01-01T00:00:00.000Z"fixture-6d610156"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03432024-01-01T00:00:00.000Z"fixture-6d610157"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03442024-01-01T00:00:00.000Z"fixture-6d610158"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03452024-01-01T00:00:00.000Z"fixture-6d610159"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03462024-01-01T00:00:00.000Z"fixture-6d61015a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03472024-01-01T00:00:00.000Z"fixture-6d61015b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03482024-01-01T00:00:00.000Z"fixture-6d61015c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03492024-01-01T00:00:00.000Z"fixture-6d61015d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03502024-01-01T00:00:00.000Z"fixture-6d61015e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03512024-01-01T00:00:00.000Z"fixture-6d61015f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03522024-01-01T00:00:00.000Z"fixture-6d610160"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03532024-01-01T00:00:00.000Z"fixture-6d610161"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03542024-01-01T00:00:00.000Z"fixture-6d610162"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03552024-01-01T00:00:00.000Z"fixture-6d610163"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03562024-01-01T00:00:00.000Z"fixture-6d610164"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03572024-01-01T00:00:00.000Z"fixture-6d610165"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03582024-01-01T00:00:00.000Z"fixture-6d610166"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03592024-01-01T00:00:00.000Z"fixture-6d610167"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03602024-01-01T00:00:00.000Z"fixture-6d610168"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03612024-01-01T00:00:00.000Z"fixture-6d610169"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03622024-01-01T00:00:00.000Z"fixture-6d61016a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03632024-01-01T00:00:00.000Z"fixture-6d61016b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03642024-01-01T00:00:00.000Z"fixture-6d61016c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03652024-01-01T00:00:00.000Z"fixture-6d61016d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03662024-01-01T00:00:00.000Z"fixture-6d61016e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03672024-01-01T00:00:00.000Z"fixture-6d61016f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03682024-01-01T00:00:00.000Z"fixture-6d610170"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03692024-01-01T00:00:00.000Z"fixture-6d610171"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03702024-01-01T00:00:00.000Z"fixture-6d610172"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03712024-01-01T00:00:00.000Z"fixture-6d610173"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03722024-01-01T00:00:00.000Z"fixture-6d610174"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03732024-01-01T00:00:00.000Z"fixture-6d610175"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03742024-01-01T00:00:00.000Z"fixture-6d610176"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03752024-01-01T00:00:00.000Z"fixture-6d610177"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03762024-01-01T00:00:00.000Z"fixture-6d610178"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03772024-01-01T00:00:00.000Z"fixture-6d610179"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03782024-01-01T00:00:00.000Z"fixture-6d61017a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03792024-01-01T00:00:00.000Z"fixture-6d61017b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03802024-01-01T00:00:00.000Z"fixture-6d61017c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03812024-01-01T00:00:00.000Z"fixture-6d61017d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03822024-01-01T00:00:00.000Z"fixture-6d61017e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03832024-01-01T00:00:00.000Z"fixture-6d61017f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03842024-01-01T00:00:00.000Z"fixture-6d610180"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03852024-01-01T00:00:00.000Z"fixture-6d610181"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03862024-01-01T00:00:00.000Z"fixture-6d610182"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03872024-01-01T00:00:00.000Z"fixture-6d610183"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03882024-01-01T00:00:00.000Z"fixture-6d610184"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03892024-01-01T00:00:00.000Z"fixture-6d610185"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03902024-01-01T00:00:00.000Z"fixture-6d610186"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03912024-01-01T00:00:00.000Z"fixture-6d610187"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03922024-01-01T00:00:00.000Z"fixture-6d610188"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03932024-01-01T00:00:00.000Z"fixture-6d610189"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03942024-01-01T00:00:00.000Z"fixture-6d61018a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03952024-01-01T00:00:00.000Z"fixture-6d61018b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03962024-01-01T00:00:00.000Z"fixture-6d61018c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03972024-01-01T00:00:00.000Z"fixture-6d61018d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03982024-01-01T00:00:00.000Z"fixture-6d61018e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03992024-01-01T00:00:00.000Z"fixture-6d61018f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04002024-01-01T00:00:00.000Z"fixture-6d610190"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04012024-01-01T00:00:00.000Z"fixture-6d610191"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04022024-01-01T00:00:00.000Z"fixture-6d610192"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04032024-01-01T00:00:00.000Z"fixture-6d610193"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04042024-01-01T00:00:00.000Z"fixture-6d610194"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04052024-01-01T00:00:00.000Z"fixture-6d610195"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04062024-01-01T00:00:00.000Z"fixture-6d610196"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04072024-01-01T00:00:00.000Z"fixture-6d610197"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04082024-01-01T00:00:00.000Z"fixture-6d610198"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04092024-01-01T00:00:00.000Z"fixture-6d610199"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04102024-01-01T00:00:00.000Z"fixture-6d61019a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04112024-01-01T00:00:00.000Z"fixture-6d61019b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04122024-01-01T00:00:00.000Z"fixture-6d61019c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04132024-01-01T00:00:00.000Z"fixture-6d61019d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04142024-01-01T00:00:00.000Z"fixture-6d61019e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04152024-01-01T00:00:00.000Z"fixture-6d61019f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04162024-01-01T00:00:00.000Z"fixture-6d6101a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04172024-01-01T00:00:00.000Z"fixture-6d6101a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04182024-01-01T00:00:00.000Z"fixture-6d6101a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04192024-01-01T00:00:00.000Z"fixture-6d6101a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04202024-01-01T00:00:00.000Z"fixture-6d6101a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04212024-01-01T00:00:00.000Z"fixture-6d6101a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04222024-01-01T00:00:00.000Z"fixture-6d6101a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04232024-01-01T00:00:00.000Z"fixture-6d6101a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04242024-01-01T00:00:00.000Z"fixture-6d6101a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04252024-01-01T00:00:00.000Z"fixture-6d6101a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04262024-01-01T00:00:00.000Z"fixture-6d6101aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04272024-01-01T00:00:00.000Z"fixture-6d6101ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04282024-01-01T00:00:00.000Z"fixture-6d6101ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04292024-01-01T00:00:00.000Z"fixture-6d6101ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04302024-01-01T00:00:00.000Z"fixture-6d6101ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04312024-01-01T00:00:00.000Z"fixture-6d6101af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04322024-01-01T00:00:00.000Z"fixture-6d6101b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04332024-01-01T00:00:00.000Z"fixture-6d6101b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04342024-01-01T00:00:00.000Z"fixture-6d6101b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04352024-01-01T00:00:00.000Z"fixture-6d6101b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04362024-01-01T00:00:00.000Z"fixture-6d6101b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04372024-01-01T00:00:00.000Z"fixture-6d6101b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04382024-01-01T00:00:00.000Z"fixture-6d6101b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04392024-01-01T00:00:00.000Z"fixture-6d6101b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04402024-01-01T00:00:00.000Z"fixture-6d6101b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04412024-01-01T00:00:00.000Z"fixture-6d6101b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04422024-01-01T00:00:00.000Z"fixture-6d6101ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04432024-01-01T00:00:00.000Z"fixture-6d6101bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04442024-01-01T00:00:00.000Z"fixture-6d6101bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04452024-01-01T00:00:00.000Z"fixture-6d6101bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04462024-01-01T00:00:00.000Z"fixture-6d6101be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04472024-01-01T00:00:00.000Z"fixture-6d6101bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04482024-01-01T00:00:00.000Z"fixture-6d6101c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04492024-01-01T00:00:00.000Z"fixture-6d6101c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04502024-01-01T00:00:00.000Z"fixture-6d6101c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04512024-01-01T00:00:00.000Z"fixture-6d6101c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04522024-01-01T00:00:00.000Z"fixture-6d6101c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04532024-01-01T00:00:00.000Z"fixture-6d6101c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04542024-01-01T00:00:00.000Z"fixture-6d6101c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04552024-01-01T00:00:00.000Z"fixture-6d6101c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04562024-01-01T00:00:00.000Z"fixture-6d6101c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04572024-01-01T00:00:00.000Z"fixture-6d6101c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04582024-01-01T00:00:00.000Z"fixture-6d6101ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04592024-01-01T00:00:00.000Z"fixture-6d6101cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04602024-01-01T00:00:00.000Z"fixture-6d6101cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04612024-01-01T00:00:00.000Z"fixture-6d6101cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04622024-01-01T00:00:00.000Z"fixture-6d6101ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04632024-01-01T00:00:00.000Z"fixture-6d6101cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04642024-01-01T00:00:00.000Z"fixture-6d6101d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04652024-01-01T00:00:00.000Z"fixture-6d6101d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04662024-01-01T00:00:00.000Z"fixture-6d6101d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04672024-01-01T00:00:00.000Z"fixture-6d6101d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04682024-01-01T00:00:00.000Z"fixture-6d6101d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04692024-01-01T00:00:00.000Z"fixture-6d6101d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04702024-01-01T00:00:00.000Z"fixture-6d6101d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04712024-01-01T00:00:00.000Z"fixture-6d6101d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04722024-01-01T00:00:00.000Z"fixture-6d6101d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04732024-01-01T00:00:00.000Z"fixture-6d6101d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04742024-01-01T00:00:00.000Z"fixture-6d6101da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04752024-01-01T00:00:00.000Z"fixture-6d6101db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04762024-01-01T00:00:00.000Z"fixture-6d6101dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04772024-01-01T00:00:00.000Z"fixture-6d6101dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04782024-01-01T00:00:00.000Z"fixture-6d6101de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04792024-01-01T00:00:00.000Z"fixture-6d6101df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04802024-01-01T00:00:00.000Z"fixture-6d6101e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04812024-01-01T00:00:00.000Z"fixture-6d6101e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04822024-01-01T00:00:00.000Z"fixture-6d6101e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04832024-01-01T00:00:00.000Z"fixture-6d6101e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04842024-01-01T00:00:00.000Z"fixture-6d6101e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04852024-01-01T00:00:00.000Z"fixture-6d6101e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04862024-01-01T00:00:00.000Z"fixture-6d6101e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04872024-01-01T00:00:00.000Z"fixture-6d6101e7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04882024-01-01T00:00:00.000Z"fixture-6d6101e8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04892024-01-01T00:00:00.000Z"fixture-6d6101e9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04902024-01-01T00:00:00.000Z"fixture-6d6101ea"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04912024-01-01T00:00:00.000Z"fixture-6d6101eb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04922024-01-01T00:00:00.000Z"fixture-6d6101ec"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04932024-01-01T00:00:00.000Z"fixture-6d6101ed"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04942024-01-01T00:00:00.000Z"fixture-6d6101ee"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04952024-01-01T00:00:00.000Z"fixture-6d6101ef"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04962024-01-01T00:00:00.000Z"fixture-6d6101f0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04972024-01-01T00:00:00.000Z"fixture-6d6101f1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04982024-01-01T00:00:00.000Z"fixture-6d6101f2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04992024-01-01T00:00:00.000Z"fixture-6d6101f3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05002024-01-01T00:00:00.000Z"fixture-6d6101f4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05012024-01-01T00:00:00.000Z"fixture-6d6101f5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05022024-01-01T00:00:00.000Z"fixture-6d6101f6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05032024-01-01T00:00:00.000Z"fixture-6d6101f7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05042024-01-01T00:00:00.000Z"fixture-6d6101f8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05052024-01-01T00:00:00.000Z"fixture-6d6101f9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05062024-01-01T00:00:00.000Z"fixture-6d6101fa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05072024-01-01T00:00:00.000Z"fixture-6d6101fb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05082024-01-01T00:00:00.000Z"fixture-6d6101fc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05092024-01-01T00:00:00.000Z"fixture-6d6101fd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05102024-01-01T00:00:00.000Z"fixture-6d6101fe"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05112024-01-01T00:00:00.000Z"fixture-6d6101ff"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05122024-01-01T00:00:00.000Z"fixture-6d610200"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05132024-01-01T00:00:00.000Z"fixture-6d610201"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05142024-01-01T00:00:00.000Z"fixture-6d610202"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05152024-01-01T00:00:00.000Z"fixture-6d610203"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05162024-01-01T00:00:00.000Z"fixture-6d610204"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05172024-01-01T00:00:00.000Z"fixture-6d610205"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05182024-01-01T00:00:00.000Z"fixture-6d610206"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05192024-01-01T00:00:00.000Z"fixture-6d610207"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05202024-01-01T00:00:00.000Z"fixture-6d610208"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05212024-01-01T00:00:00.000Z"fixture-6d610209"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05222024-01-01T00:00:00.000Z"fixture-6d61020a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05232024-01-01T00:00:00.000Z"fixture-6d61020b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05242024-01-01T00:00:00.000Z"fixture-6d61020c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05252024-01-01T00:00:00.000Z"fixture-6d61020d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05262024-01-01T00:00:00.000Z"fixture-6d61020e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05272024-01-01T00:00:00.000Z"fixture-6d61020f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05282024-01-01T00:00:00.000Z"fixture-6d610210"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05292024-01-01T00:00:00.000Z"fixture-6d610211"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05302024-01-01T00:00:00.000Z"fixture-6d610212"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05312024-01-01T00:00:00.000Z"fixture-6d610213"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05322024-01-01T00:00:00.000Z"fixture-6d610214"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05332024-01-01T00:00:00.000Z"fixture-6d610215"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05342024-01-01T00:00:00.000Z"fixture-6d610216"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05352024-01-01T00:00:00.000Z"fixture-6d610217"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05362024-01-01T00:00:00.000Z"fixture-6d610218"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05372024-01-01T00:00:00.000Z"fixture-6d610219"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05382024-01-01T00:00:00.000Z"fixture-6d61021a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05392024-01-01T00:00:00.000Z"fixture-6d61021b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05402024-01-01T00:00:00.000Z"fixture-6d61021c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05412024-01-01T00:00:00.000Z"fixture-6d61021d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05422024-01-01T00:00:00.000Z"fixture-6d61021e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05432024-01-01T00:00:00.000Z"fixture-6d61021f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05442024-01-01T00:00:00.000Z"fixture-6d610220"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05452024-01-01T00:00:00.000Z"fixture-6d610221"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05462024-01-01T00:00:00.000Z"fixture-6d610222"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05472024-01-01T00:00:00.000Z"fixture-6d610223"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05482024-01-01T00:00:00.000Z"fixture-6d610224"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05492024-01-01T00:00:00.000Z"fixture-6d610225"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05502024-01-01T00:00:00.000Z"fixture-6d610226"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05512024-01-01T00:00:00.000Z"fixture-6d610227"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05522024-01-01T00:00:00.000Z"fixture-6d610228"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05532024-01-01T00:00:00.000Z"fixture-6d610229"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05542024-01-01T00:00:00.000Z"fixture-6d61022a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05552024-01-01T00:00:00.000Z"fixture-6d61022b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05562024-01-01T00:00:00.000Z"fixture-6d61022c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05572024-01-01T00:00:00.000Z"fixture-6d61022d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05582024-01-01T00:00:00.000Z"fixture-6d61022e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05592024-01-01T00:00:00.000Z"fixture-6d61022f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05602024-01-01T00:00:00.000Z"fixture-6d610230"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05612024-01-01T00:00:00.000Z"fixture-6d610231"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05622024-01-01T00:00:00.000Z"fixture-6d610232"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05632024-01-01T00:00:00.000Z"fixture-6d610233"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05642024-01-01T00:00:00.000Z"fixture-6d610234"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05652024-01-01T00:00:00.000Z"fixture-6d610235"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05662024-01-01T00:00:00.000Z"fixture-6d610236"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05672024-01-01T00:00:00.000Z"fixture-6d610237"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05682024-01-01T00:00:00.000Z"fixture-6d610238"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05692024-01-01T00:00:00.000Z"fixture-6d610239"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05702024-01-01T00:00:00.000Z"fixture-6d61023a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05712024-01-01T00:00:00.000Z"fixture-6d61023b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05722024-01-01T00:00:00.000Z"fixture-6d61023c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05732024-01-01T00:00:00.000Z"fixture-6d61023d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05742024-01-01T00:00:00.000Z"fixture-6d61023e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05752024-01-01T00:00:00.000Z"fixture-6d61023f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05762024-01-01T00:00:00.000Z"fixture-6d610240"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05772024-01-01T00:00:00.000Z"fixture-6d610241"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05782024-01-01T00:00:00.000Z"fixture-6d610242"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05792024-01-01T00:00:00.000Z"fixture-6d610243"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05802024-01-01T00:00:00.000Z"fixture-6d610244"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05812024-01-01T00:00:00.000Z"fixture-6d610245"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05822024-01-01T00:00:00.000Z"fixture-6d610246"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05832024-01-01T00:00:00.000Z"fixture-6d610247"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05842024-01-01T00:00:00.000Z"fixture-6d610248"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05852024-01-01T00:00:00.000Z"fixture-6d610249"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05862024-01-01T00:00:00.000Z"fixture-6d61024a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05872024-01-01T00:00:00.000Z"fixture-6d61024b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05882024-01-01T00:00:00.000Z"fixture-6d61024c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05892024-01-01T00:00:00.000Z"fixture-6d61024d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05902024-01-01T00:00:00.000Z"fixture-6d61024e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05912024-01-01T00:00:00.000Z"fixture-6d61024f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05922024-01-01T00:00:00.000Z"fixture-6d610250"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05932024-01-01T00:00:00.000Z"fixture-6d610251"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05942024-01-01T00:00:00.000Z"fixture-6d610252"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05952024-01-01T00:00:00.000Z"fixture-6d610253"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05962024-01-01T00:00:00.000Z"fixture-6d610254"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05972024-01-01T00:00:00.000Z"fixture-6d610255"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05982024-01-01T00:00:00.000Z"fixture-6d610256"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05992024-01-01T00:00:00.000Z"fixture-6d610257"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06002024-01-01T00:00:00.000Z"fixture-6d610258"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06012024-01-01T00:00:00.000Z"fixture-6d610259"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06022024-01-01T00:00:00.000Z"fixture-6d61025a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06032024-01-01T00:00:00.000Z"fixture-6d61025b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06042024-01-01T00:00:00.000Z"fixture-6d61025c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06052024-01-01T00:00:00.000Z"fixture-6d61025d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06062024-01-01T00:00:00.000Z"fixture-6d61025e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06072024-01-01T00:00:00.000Z"fixture-6d61025f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06082024-01-01T00:00:00.000Z"fixture-6d610260"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06092024-01-01T00:00:00.000Z"fixture-6d610261"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06102024-01-01T00:00:00.000Z"fixture-6d610262"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06112024-01-01T00:00:00.000Z"fixture-6d610263"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06122024-01-01T00:00:00.000Z"fixture-6d610264"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06132024-01-01T00:00:00.000Z"fixture-6d610265"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06142024-01-01T00:00:00.000Z"fixture-6d610266"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06152024-01-01T00:00:00.000Z"fixture-6d610267"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06162024-01-01T00:00:00.000Z"fixture-6d610268"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06172024-01-01T00:00:00.000Z"fixture-6d610269"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06182024-01-01T00:00:00.000Z"fixture-6d61026a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06192024-01-01T00:00:00.000Z"fixture-6d61026b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06202024-01-01T00:00:00.000Z"fixture-6d61026c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06212024-01-01T00:00:00.000Z"fixture-6d61026d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06222024-01-01T00:00:00.000Z"fixture-6d61026e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06232024-01-01T00:00:00.000Z"fixture-6d61026f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06242024-01-01T00:00:00.000Z"fixture-6d610270"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06252024-01-01T00:00:00.000Z"fixture-6d610271"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06262024-01-01T00:00:00.000Z"fixture-6d610272"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06272024-01-01T00:00:00.000Z"fixture-6d610273"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06282024-01-01T00:00:00.000Z"fixture-6d610274"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06292024-01-01T00:00:00.000Z"fixture-6d610275"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06302024-01-01T00:00:00.000Z"fixture-6d610276"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06312024-01-01T00:00:00.000Z"fixture-6d610277"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06322024-01-01T00:00:00.000Z"fixture-6d610278"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06332024-01-01T00:00:00.000Z"fixture-6d610279"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06342024-01-01T00:00:00.000Z"fixture-6d61027a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06352024-01-01T00:00:00.000Z"fixture-6d61027b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06362024-01-01T00:00:00.000Z"fixture-6d61027c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06372024-01-01T00:00:00.000Z"fixture-6d61027d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06382024-01-01T00:00:00.000Z"fixture-6d61027e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06392024-01-01T00:00:00.000Z"fixture-6d61027f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06402024-01-01T00:00:00.000Z"fixture-6d610280"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06412024-01-01T00:00:00.000Z"fixture-6d610281"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06422024-01-01T00:00:00.000Z"fixture-6d610282"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06432024-01-01T00:00:00.000Z"fixture-6d610283"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06442024-01-01T00:00:00.000Z"fixture-6d610284"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06452024-01-01T00:00:00.000Z"fixture-6d610285"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06462024-01-01T00:00:00.000Z"fixture-6d610286"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06472024-01-01T00:00:00.000Z"fixture-6d610287"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06482024-01-01T00:00:00.000Z"fixture-6d610288"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06492024-01-01T00:00:00.000Z"fixture-6d610289"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06502024-01-01T00:00:00.000Z"fixture-6d61028a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06512024-01-01T00:00:00.000Z"fixture-6d61028b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06522024-01-01T00:00:00.000Z"fixture-6d61028c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06532024-01-01T00:00:00.000Z"fixture-6d61028d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06542024-01-01T00:00:00.000Z"fixture-6d61028e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06552024-01-01T00:00:00.000Z"fixture-6d61028f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06562024-01-01T00:00:00.000Z"fixture-6d610290"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06572024-01-01T00:00:00.000Z"fixture-6d610291"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06582024-01-01T00:00:00.000Z"fixture-6d610292"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06592024-01-01T00:00:00.000Z"fixture-6d610293"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06602024-01-01T00:00:00.000Z"fixture-6d610294"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06612024-01-01T00:00:00.000Z"fixture-6d610295"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06622024-01-01T00:00:00.000Z"fixture-6d610296"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06632024-01-01T00:00:00.000Z"fixture-6d610297"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06642024-01-01T00:00:00.000Z"fixture-6d610298"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06652024-01-01T00:00:00.000Z"fixture-6d610299"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06662024-01-01T00:00:00.000Z"fixture-6d61029a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06672024-01-01T00:00:00.000Z"fixture-6d61029b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06682024-01-01T00:00:00.000Z"fixture-6d61029c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06692024-01-01T00:00:00.000Z"fixture-6d61029d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06702024-01-01T00:00:00.000Z"fixture-6d61029e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06712024-01-01T00:00:00.000Z"fixture-6d61029f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06722024-01-01T00:00:00.000Z"fixture-6d6102a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06732024-01-01T00:00:00.000Z"fixture-6d6102a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06742024-01-01T00:00:00.000Z"fixture-6d6102a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06752024-01-01T00:00:00.000Z"fixture-6d6102a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06762024-01-01T00:00:00.000Z"fixture-6d6102a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06772024-01-01T00:00:00.000Z"fixture-6d6102a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06782024-01-01T00:00:00.000Z"fixture-6d6102a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06792024-01-01T00:00:00.000Z"fixture-6d6102a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06802024-01-01T00:00:00.000Z"fixture-6d6102a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06812024-01-01T00:00:00.000Z"fixture-6d6102a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06822024-01-01T00:00:00.000Z"fixture-6d6102aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06832024-01-01T00:00:00.000Z"fixture-6d6102ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06842024-01-01T00:00:00.000Z"fixture-6d6102ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06852024-01-01T00:00:00.000Z"fixture-6d6102ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06862024-01-01T00:00:00.000Z"fixture-6d6102ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06872024-01-01T00:00:00.000Z"fixture-6d6102af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06882024-01-01T00:00:00.000Z"fixture-6d6102b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06892024-01-01T00:00:00.000Z"fixture-6d6102b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06902024-01-01T00:00:00.000Z"fixture-6d6102b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06912024-01-01T00:00:00.000Z"fixture-6d6102b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06922024-01-01T00:00:00.000Z"fixture-6d6102b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06932024-01-01T00:00:00.000Z"fixture-6d6102b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06942024-01-01T00:00:00.000Z"fixture-6d6102b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06952024-01-01T00:00:00.000Z"fixture-6d6102b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06962024-01-01T00:00:00.000Z"fixture-6d6102b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06972024-01-01T00:00:00.000Z"fixture-6d6102b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06982024-01-01T00:00:00.000Z"fixture-6d6102ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06992024-01-01T00:00:00.000Z"fixture-6d6102bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07002024-01-01T00:00:00.000Z"fixture-6d6102bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07012024-01-01T00:00:00.000Z"fixture-6d6102bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07022024-01-01T00:00:00.000Z"fixture-6d6102be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07032024-01-01T00:00:00.000Z"fixture-6d6102bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07042024-01-01T00:00:00.000Z"fixture-6d6102c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07052024-01-01T00:00:00.000Z"fixture-6d6102c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07062024-01-01T00:00:00.000Z"fixture-6d6102c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07072024-01-01T00:00:00.000Z"fixture-6d6102c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07082024-01-01T00:00:00.000Z"fixture-6d6102c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07092024-01-01T00:00:00.000Z"fixture-6d6102c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07102024-01-01T00:00:00.000Z"fixture-6d6102c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07112024-01-01T00:00:00.000Z"fixture-6d6102c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07122024-01-01T00:00:00.000Z"fixture-6d6102c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07132024-01-01T00:00:00.000Z"fixture-6d6102c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07142024-01-01T00:00:00.000Z"fixture-6d6102ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07152024-01-01T00:00:00.000Z"fixture-6d6102cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07162024-01-01T00:00:00.000Z"fixture-6d6102cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07172024-01-01T00:00:00.000Z"fixture-6d6102cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07182024-01-01T00:00:00.000Z"fixture-6d6102ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07192024-01-01T00:00:00.000Z"fixture-6d6102cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07202024-01-01T00:00:00.000Z"fixture-6d6102d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07212024-01-01T00:00:00.000Z"fixture-6d6102d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07222024-01-01T00:00:00.000Z"fixture-6d6102d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07232024-01-01T00:00:00.000Z"fixture-6d6102d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07242024-01-01T00:00:00.000Z"fixture-6d6102d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07252024-01-01T00:00:00.000Z"fixture-6d6102d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07262024-01-01T00:00:00.000Z"fixture-6d6102d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07272024-01-01T00:00:00.000Z"fixture-6d6102d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07282024-01-01T00:00:00.000Z"fixture-6d6102d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07292024-01-01T00:00:00.000Z"fixture-6d6102d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07302024-01-01T00:00:00.000Z"fixture-6d6102da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07312024-01-01T00:00:00.000Z"fixture-6d6102db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07322024-01-01T00:00:00.000Z"fixture-6d6102dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07332024-01-01T00:00:00.000Z"fixture-6d6102dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07342024-01-01T00:00:00.000Z"fixture-6d6102de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07352024-01-01T00:00:00.000Z"fixture-6d6102df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07362024-01-01T00:00:00.000Z"fixture-6d6102e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07372024-01-01T00:00:00.000Z"fixture-6d6102e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07382024-01-01T00:00:00.000Z"fixture-6d6102e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07392024-01-01T00:00:00.000Z"fixture-6d6102e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07402024-01-01T00:00:00.000Z"fixture-6d6102e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07412024-01-01T00:00:00.000Z"fixture-6d6102e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07422024-01-01T00:00:00.000Z"fixture-6d6102e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07432024-01-01T00:00:00.000Z"fixture-6d6102e7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07442024-01-01T00:00:00.000Z"fixture-6d6102e8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07452024-01-01T00:00:00.000Z"fixture-6d6102e9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07462024-01-01T00:00:00.000Z"fixture-6d6102ea"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07472024-01-01T00:00:00.000Z"fixture-6d6102eb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07482024-01-01T00:00:00.000Z"fixture-6d6102ec"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07492024-01-01T00:00:00.000Z"fixture-6d6102ed"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07502024-01-01T00:00:00.000Z"fixture-6d6102ee"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07512024-01-01T00:00:00.000Z"fixture-6d6102ef"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07522024-01-01T00:00:00.000Z"fixture-6d6102f0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07532024-01-01T00:00:00.000Z"fixture-6d6102f1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07542024-01-01T00:00:00.000Z"fixture-6d6102f2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07552024-01-01T00:00:00.000Z"fixture-6d6102f3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07562024-01-01T00:00:00.000Z"fixture-6d6102f4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07572024-01-01T00:00:00.000Z"fixture-6d6102f5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07582024-01-01T00:00:00.000Z"fixture-6d6102f6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07592024-01-01T00:00:00.000Z"fixture-6d6102f7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07602024-01-01T00:00:00.000Z"fixture-6d6102f8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07612024-01-01T00:00:00.000Z"fixture-6d6102f9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07622024-01-01T00:00:00.000Z"fixture-6d6102fa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07632024-01-01T00:00:00.000Z"fixture-6d6102fb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07642024-01-01T00:00:00.000Z"fixture-6d6102fc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07652024-01-01T00:00:00.000Z"fixture-6d6102fd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07662024-01-01T00:00:00.000Z"fixture-6d6102fe"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07672024-01-01T00:00:00.000Z"fixture-6d6102ff"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07682024-01-01T00:00:00.000Z"fixture-6d610300"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07692024-01-01T00:00:00.000Z"fixture-6d610301"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07702024-01-01T00:00:00.000Z"fixture-6d610302"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07712024-01-01T00:00:00.000Z"fixture-6d610303"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07722024-01-01T00:00:00.000Z"fixture-6d610304"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07732024-01-01T00:00:00.000Z"fixture-6d610305"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07742024-01-01T00:00:00.000Z"fixture-6d610306"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07752024-01-01T00:00:00.000Z"fixture-6d610307"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07762024-01-01T00:00:00.000Z"fixture-6d610308"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07772024-01-01T00:00:00.000Z"fixture-6d610309"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07782024-01-01T00:00:00.000Z"fixture-6d61030a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07792024-01-01T00:00:00.000Z"fixture-6d61030b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07802024-01-01T00:00:00.000Z"fixture-6d61030c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07812024-01-01T00:00:00.000Z"fixture-6d61030d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07822024-01-01T00:00:00.000Z"fixture-6d61030e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07832024-01-01T00:00:00.000Z"fixture-6d61030f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07842024-01-01T00:00:00.000Z"fixture-6d610310"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07852024-01-01T00:00:00.000Z"fixture-6d610311"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07862024-01-01T00:00:00.000Z"fixture-6d610312"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07872024-01-01T00:00:00.000Z"fixture-6d610313"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07882024-01-01T00:00:00.000Z"fixture-6d610314"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07892024-01-01T00:00:00.000Z"fixture-6d610315"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07902024-01-01T00:00:00.000Z"fixture-6d610316"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07912024-01-01T00:00:00.000Z"fixture-6d610317"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07922024-01-01T00:00:00.000Z"fixture-6d610318"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07932024-01-01T00:00:00.000Z"fixture-6d610319"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07942024-01-01T00:00:00.000Z"fixture-6d61031a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07952024-01-01T00:00:00.000Z"fixture-6d61031b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07962024-01-01T00:00:00.000Z"fixture-6d61031c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07972024-01-01T00:00:00.000Z"fixture-6d61031d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07982024-01-01T00:00:00.000Z"fixture-6d61031e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07992024-01-01T00:00:00.000Z"fixture-6d61031f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08002024-01-01T00:00:00.000Z"fixture-6d610320"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08012024-01-01T00:00:00.000Z"fixture-6d610321"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08022024-01-01T00:00:00.000Z"fixture-6d610322"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08032024-01-01T00:00:00.000Z"fixture-6d610323"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08042024-01-01T00:00:00.000Z"fixture-6d610324"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08052024-01-01T00:00:00.000Z"fixture-6d610325"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08062024-01-01T00:00:00.000Z"fixture-6d610326"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08072024-01-01T00:00:00.000Z"fixture-6d610327"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08082024-01-01T00:00:00.000Z"fixture-6d610328"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08092024-01-01T00:00:00.000Z"fixture-6d610329"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08102024-01-01T00:00:00.000Z"fixture-6d61032a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08112024-01-01T00:00:00.000Z"fixture-6d61032b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08122024-01-01T00:00:00.000Z"fixture-6d61032c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08132024-01-01T00:00:00.000Z"fixture-6d61032d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08142024-01-01T00:00:00.000Z"fixture-6d61032e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08152024-01-01T00:00:00.000Z"fixture-6d61032f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08162024-01-01T00:00:00.000Z"fixture-6d610330"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08172024-01-01T00:00:00.000Z"fixture-6d610331"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08182024-01-01T00:00:00.000Z"fixture-6d610332"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08192024-01-01T00:00:00.000Z"fixture-6d610333"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08202024-01-01T00:00:00.000Z"fixture-6d610334"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08212024-01-01T00:00:00.000Z"fixture-6d610335"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08222024-01-01T00:00:00.000Z"fixture-6d610336"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08232024-01-01T00:00:00.000Z"fixture-6d610337"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08242024-01-01T00:00:00.000Z"fixture-6d610338"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08252024-01-01T00:00:00.000Z"fixture-6d610339"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08262024-01-01T00:00:00.000Z"fixture-6d61033a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08272024-01-01T00:00:00.000Z"fixture-6d61033b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08282024-01-01T00:00:00.000Z"fixture-6d61033c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08292024-01-01T00:00:00.000Z"fixture-6d61033d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08302024-01-01T00:00:00.000Z"fixture-6d61033e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08312024-01-01T00:00:00.000Z"fixture-6d61033f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08322024-01-01T00:00:00.000Z"fixture-6d610340"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08332024-01-01T00:00:00.000Z"fixture-6d610341"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08342024-01-01T00:00:00.000Z"fixture-6d610342"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08352024-01-01T00:00:00.000Z"fixture-6d610343"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08362024-01-01T00:00:00.000Z"fixture-6d610344"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08372024-01-01T00:00:00.000Z"fixture-6d610345"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08382024-01-01T00:00:00.000Z"fixture-6d610346"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08392024-01-01T00:00:00.000Z"fixture-6d610347"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08402024-01-01T00:00:00.000Z"fixture-6d610348"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08412024-01-01T00:00:00.000Z"fixture-6d610349"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08422024-01-01T00:00:00.000Z"fixture-6d61034a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08432024-01-01T00:00:00.000Z"fixture-6d61034b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08442024-01-01T00:00:00.000Z"fixture-6d61034c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08452024-01-01T00:00:00.000Z"fixture-6d61034d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08462024-01-01T00:00:00.000Z"fixture-6d61034e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08472024-01-01T00:00:00.000Z"fixture-6d61034f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08482024-01-01T00:00:00.000Z"fixture-6d610350"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08492024-01-01T00:00:00.000Z"fixture-6d610351"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08502024-01-01T00:00:00.000Z"fixture-6d610352"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08512024-01-01T00:00:00.000Z"fixture-6d610353"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08522024-01-01T00:00:00.000Z"fixture-6d610354"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08532024-01-01T00:00:00.000Z"fixture-6d610355"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08542024-01-01T00:00:00.000Z"fixture-6d610356"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08552024-01-01T00:00:00.000Z"fixture-6d610357"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08562024-01-01T00:00:00.000Z"fixture-6d610358"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08572024-01-01T00:00:00.000Z"fixture-6d610359"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08582024-01-01T00:00:00.000Z"fixture-6d61035a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08592024-01-01T00:00:00.000Z"fixture-6d61035b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08602024-01-01T00:00:00.000Z"fixture-6d61035c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08612024-01-01T00:00:00.000Z"fixture-6d61035d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08622024-01-01T00:00:00.000Z"fixture-6d61035e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08632024-01-01T00:00:00.000Z"fixture-6d61035f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08642024-01-01T00:00:00.000Z"fixture-6d610360"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08652024-01-01T00:00:00.000Z"fixture-6d610361"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08662024-01-01T00:00:00.000Z"fixture-6d610362"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08672024-01-01T00:00:00.000Z"fixture-6d610363"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08682024-01-01T00:00:00.000Z"fixture-6d610364"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08692024-01-01T00:00:00.000Z"fixture-6d610365"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08702024-01-01T00:00:00.000Z"fixture-6d610366"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08712024-01-01T00:00:00.000Z"fixture-6d610367"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08722024-01-01T00:00:00.000Z"fixture-6d610368"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08732024-01-01T00:00:00.000Z"fixture-6d610369"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08742024-01-01T00:00:00.000Z"fixture-6d61036a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08752024-01-01T00:00:00.000Z"fixture-6d61036b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08762024-01-01T00:00:00.000Z"fixture-6d61036c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08772024-01-01T00:00:00.000Z"fixture-6d61036d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08782024-01-01T00:00:00.000Z"fixture-6d61036e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08792024-01-01T00:00:00.000Z"fixture-6d61036f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08802024-01-01T00:00:00.000Z"fixture-6d610370"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08812024-01-01T00:00:00.000Z"fixture-6d610371"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08822024-01-01T00:00:00.000Z"fixture-6d610372"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08832024-01-01T00:00:00.000Z"fixture-6d610373"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08842024-01-01T00:00:00.000Z"fixture-6d610374"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08852024-01-01T00:00:00.000Z"fixture-6d610375"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08862024-01-01T00:00:00.000Z"fixture-6d610376"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08872024-01-01T00:00:00.000Z"fixture-6d610377"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08882024-01-01T00:00:00.000Z"fixture-6d610378"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08892024-01-01T00:00:00.000Z"fixture-6d610379"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08902024-01-01T00:00:00.000Z"fixture-6d61037a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08912024-01-01T00:00:00.000Z"fixture-6d61037b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08922024-01-01T00:00:00.000Z"fixture-6d61037c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08932024-01-01T00:00:00.000Z"fixture-6d61037d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08942024-01-01T00:00:00.000Z"fixture-6d61037e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08952024-01-01T00:00:00.000Z"fixture-6d61037f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08962024-01-01T00:00:00.000Z"fixture-6d610380"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08972024-01-01T00:00:00.000Z"fixture-6d610381"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08982024-01-01T00:00:00.000Z"fixture-6d610382"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08992024-01-01T00:00:00.000Z"fixture-6d610383"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09002024-01-01T00:00:00.000Z"fixture-6d610384"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09012024-01-01T00:00:00.000Z"fixture-6d610385"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09022024-01-01T00:00:00.000Z"fixture-6d610386"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09032024-01-01T00:00:00.000Z"fixture-6d610387"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09042024-01-01T00:00:00.000Z"fixture-6d610388"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09052024-01-01T00:00:00.000Z"fixture-6d610389"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09062024-01-01T00:00:00.000Z"fixture-6d61038a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09072024-01-01T00:00:00.000Z"fixture-6d61038b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09082024-01-01T00:00:00.000Z"fixture-6d61038c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09092024-01-01T00:00:00.000Z"fixture-6d61038d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09102024-01-01T00:00:00.000Z"fixture-6d61038e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09112024-01-01T00:00:00.000Z"fixture-6d61038f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09122024-01-01T00:00:00.000Z"fixture-6d610390"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09132024-01-01T00:00:00.000Z"fixture-6d610391"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09142024-01-01T00:00:00.000Z"fixture-6d610392"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09152024-01-01T00:00:00.000Z"fixture-6d610393"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09162024-01-01T00:00:00.000Z"fixture-6d610394"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09172024-01-01T00:00:00.000Z"fixture-6d610395"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09182024-01-01T00:00:00.000Z"fixture-6d610396"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09192024-01-01T00:00:00.000Z"fixture-6d610397"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09202024-01-01T00:00:00.000Z"fixture-6d610398"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09212024-01-01T00:00:00.000Z"fixture-6d610399"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09222024-01-01T00:00:00.000Z"fixture-6d61039a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09232024-01-01T00:00:00.000Z"fixture-6d61039b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09242024-01-01T00:00:00.000Z"fixture-6d61039c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09252024-01-01T00:00:00.000Z"fixture-6d61039d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09262024-01-01T00:00:00.000Z"fixture-6d61039e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09272024-01-01T00:00:00.000Z"fixture-6d61039f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09282024-01-01T00:00:00.000Z"fixture-6d6103a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09292024-01-01T00:00:00.000Z"fixture-6d6103a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09302024-01-01T00:00:00.000Z"fixture-6d6103a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09312024-01-01T00:00:00.000Z"fixture-6d6103a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09322024-01-01T00:00:00.000Z"fixture-6d6103a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09332024-01-01T00:00:00.000Z"fixture-6d6103a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09342024-01-01T00:00:00.000Z"fixture-6d6103a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09352024-01-01T00:00:00.000Z"fixture-6d6103a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09362024-01-01T00:00:00.000Z"fixture-6d6103a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09372024-01-01T00:00:00.000Z"fixture-6d6103a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09382024-01-01T00:00:00.000Z"fixture-6d6103aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09392024-01-01T00:00:00.000Z"fixture-6d6103ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09402024-01-01T00:00:00.000Z"fixture-6d6103ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09412024-01-01T00:00:00.000Z"fixture-6d6103ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09422024-01-01T00:00:00.000Z"fixture-6d6103ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09432024-01-01T00:00:00.000Z"fixture-6d6103af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09442024-01-01T00:00:00.000Z"fixture-6d6103b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09452024-01-01T00:00:00.000Z"fixture-6d6103b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09462024-01-01T00:00:00.000Z"fixture-6d6103b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09472024-01-01T00:00:00.000Z"fixture-6d6103b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09482024-01-01T00:00:00.000Z"fixture-6d6103b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09492024-01-01T00:00:00.000Z"fixture-6d6103b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09502024-01-01T00:00:00.000Z"fixture-6d6103b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09512024-01-01T00:00:00.000Z"fixture-6d6103b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09522024-01-01T00:00:00.000Z"fixture-6d6103b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09532024-01-01T00:00:00.000Z"fixture-6d6103b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09542024-01-01T00:00:00.000Z"fixture-6d6103ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09552024-01-01T00:00:00.000Z"fixture-6d6103bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09562024-01-01T00:00:00.000Z"fixture-6d6103bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09572024-01-01T00:00:00.000Z"fixture-6d6103bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09582024-01-01T00:00:00.000Z"fixture-6d6103be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09592024-01-01T00:00:00.000Z"fixture-6d6103bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09602024-01-01T00:00:00.000Z"fixture-6d6103c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09612024-01-01T00:00:00.000Z"fixture-6d6103c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09622024-01-01T00:00:00.000Z"fixture-6d6103c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09632024-01-01T00:00:00.000Z"fixture-6d6103c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09642024-01-01T00:00:00.000Z"fixture-6d6103c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09652024-01-01T00:00:00.000Z"fixture-6d6103c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09662024-01-01T00:00:00.000Z"fixture-6d6103c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09672024-01-01T00:00:00.000Z"fixture-6d6103c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09682024-01-01T00:00:00.000Z"fixture-6d6103c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09692024-01-01T00:00:00.000Z"fixture-6d6103c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09702024-01-01T00:00:00.000Z"fixture-6d6103ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09712024-01-01T00:00:00.000Z"fixture-6d6103cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09722024-01-01T00:00:00.000Z"fixture-6d6103cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09732024-01-01T00:00:00.000Z"fixture-6d6103cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09742024-01-01T00:00:00.000Z"fixture-6d6103ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09752024-01-01T00:00:00.000Z"fixture-6d6103cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09762024-01-01T00:00:00.000Z"fixture-6d6103d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09772024-01-01T00:00:00.000Z"fixture-6d6103d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09782024-01-01T00:00:00.000Z"fixture-6d6103d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09792024-01-01T00:00:00.000Z"fixture-6d6103d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09802024-01-01T00:00:00.000Z"fixture-6d6103d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09812024-01-01T00:00:00.000Z"fixture-6d6103d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09822024-01-01T00:00:00.000Z"fixture-6d6103d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09832024-01-01T00:00:00.000Z"fixture-6d6103d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09842024-01-01T00:00:00.000Z"fixture-6d6103d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09852024-01-01T00:00:00.000Z"fixture-6d6103d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09862024-01-01T00:00:00.000Z"fixture-6d6103da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09872024-01-01T00:00:00.000Z"fixture-6d6103db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09882024-01-01T00:00:00.000Z"fixture-6d6103dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09892024-01-01T00:00:00.000Z"fixture-6d6103dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09902024-01-01T00:00:00.000Z"fixture-6d6103de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09912024-01-01T00:00:00.000Z"fixture-6d6103df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09922024-01-01T00:00:00.000Z"fixture-6d6103e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09932024-01-01T00:00:00.000Z"fixture-6d6103e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09942024-01-01T00:00:00.000Z"fixture-6d6103e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09952024-01-01T00:00:00.000Z"fixture-6d6103e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09962024-01-01T00:00:00.000Z"fixture-6d6103e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09972024-01-01T00:00:00.000Z"fixture-6d6103e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09982024-01-01T00:00:00.000Z"fixture-6d6103e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09992024-01-01T00:00:00.000Z"fixture-6d6103e7"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MA=="
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-range",
- "profile": "s3",
- "lane": "core",
- "purpose": "get range",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 6,
- "start": 2
- }
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -86498,7 +124424,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -86510,11 +124436,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=2-5"
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/many/"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -86523,96 +124465,23 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 2-5/30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MjM0NQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=10001000urltrueobject-tests/many/00002024-01-01T00:00:00.000Z"fixture-6d610000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00012024-01-01T00:00:00.000Z"fixture-6d610001"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00022024-01-01T00:00:00.000Z"fixture-6d610002"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00032024-01-01T00:00:00.000Z"fixture-6d610003"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00042024-01-01T00:00:00.000Z"fixture-6d610004"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00052024-01-01T00:00:00.000Z"fixture-6d610005"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00062024-01-01T00:00:00.000Z"fixture-6d610006"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00072024-01-01T00:00:00.000Z"fixture-6d610007"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00082024-01-01T00:00:00.000Z"fixture-6d610008"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00092024-01-01T00:00:00.000Z"fixture-6d610009"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00102024-01-01T00:00:00.000Z"fixture-6d61000a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00112024-01-01T00:00:00.000Z"fixture-6d61000b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00122024-01-01T00:00:00.000Z"fixture-6d61000c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00132024-01-01T00:00:00.000Z"fixture-6d61000d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00142024-01-01T00:00:00.000Z"fixture-6d61000e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00152024-01-01T00:00:00.000Z"fixture-6d61000f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00162024-01-01T00:00:00.000Z"fixture-6d610010"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00172024-01-01T00:00:00.000Z"fixture-6d610011"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00182024-01-01T00:00:00.000Z"fixture-6d610012"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00192024-01-01T00:00:00.000Z"fixture-6d610013"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00202024-01-01T00:00:00.000Z"fixture-6d610014"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00212024-01-01T00:00:00.000Z"fixture-6d610015"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00222024-01-01T00:00:00.000Z"fixture-6d610016"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00232024-01-01T00:00:00.000Z"fixture-6d610017"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00242024-01-01T00:00:00.000Z"fixture-6d610018"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00252024-01-01T00:00:00.000Z"fixture-6d610019"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00262024-01-01T00:00:00.000Z"fixture-6d61001a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00272024-01-01T00:00:00.000Z"fixture-6d61001b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00282024-01-01T00:00:00.000Z"fixture-6d61001c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00292024-01-01T00:00:00.000Z"fixture-6d61001d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00302024-01-01T00:00:00.000Z"fixture-6d61001e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00312024-01-01T00:00:00.000Z"fixture-6d61001f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00322024-01-01T00:00:00.000Z"fixture-6d610020"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00332024-01-01T00:00:00.000Z"fixture-6d610021"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00342024-01-01T00:00:00.000Z"fixture-6d610022"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00352024-01-01T00:00:00.000Z"fixture-6d610023"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00362024-01-01T00:00:00.000Z"fixture-6d610024"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00372024-01-01T00:00:00.000Z"fixture-6d610025"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00382024-01-01T00:00:00.000Z"fixture-6d610026"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00392024-01-01T00:00:00.000Z"fixture-6d610027"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00402024-01-01T00:00:00.000Z"fixture-6d610028"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00412024-01-01T00:00:00.000Z"fixture-6d610029"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00422024-01-01T00:00:00.000Z"fixture-6d61002a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00432024-01-01T00:00:00.000Z"fixture-6d61002b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00442024-01-01T00:00:00.000Z"fixture-6d61002c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00452024-01-01T00:00:00.000Z"fixture-6d61002d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00462024-01-01T00:00:00.000Z"fixture-6d61002e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00472024-01-01T00:00:00.000Z"fixture-6d61002f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00482024-01-01T00:00:00.000Z"fixture-6d610030"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00492024-01-01T00:00:00.000Z"fixture-6d610031"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00502024-01-01T00:00:00.000Z"fixture-6d610032"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00512024-01-01T00:00:00.000Z"fixture-6d610033"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00522024-01-01T00:00:00.000Z"fixture-6d610034"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00532024-01-01T00:00:00.000Z"fixture-6d610035"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00542024-01-01T00:00:00.000Z"fixture-6d610036"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00552024-01-01T00:00:00.000Z"fixture-6d610037"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00562024-01-01T00:00:00.000Z"fixture-6d610038"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00572024-01-01T00:00:00.000Z"fixture-6d610039"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00582024-01-01T00:00:00.000Z"fixture-6d61003a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00592024-01-01T00:00:00.000Z"fixture-6d61003b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00602024-01-01T00:00:00.000Z"fixture-6d61003c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00612024-01-01T00:00:00.000Z"fixture-6d61003d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00622024-01-01T00:00:00.000Z"fixture-6d61003e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00632024-01-01T00:00:00.000Z"fixture-6d61003f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00642024-01-01T00:00:00.000Z"fixture-6d610040"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00652024-01-01T00:00:00.000Z"fixture-6d610041"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00662024-01-01T00:00:00.000Z"fixture-6d610042"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00672024-01-01T00:00:00.000Z"fixture-6d610043"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00682024-01-01T00:00:00.000Z"fixture-6d610044"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00692024-01-01T00:00:00.000Z"fixture-6d610045"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00702024-01-01T00:00:00.000Z"fixture-6d610046"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00712024-01-01T00:00:00.000Z"fixture-6d610047"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00722024-01-01T00:00:00.000Z"fixture-6d610048"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00732024-01-01T00:00:00.000Z"fixture-6d610049"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00742024-01-01T00:00:00.000Z"fixture-6d61004a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00752024-01-01T00:00:00.000Z"fixture-6d61004b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00762024-01-01T00:00:00.000Z"fixture-6d61004c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00772024-01-01T00:00:00.000Z"fixture-6d61004d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00782024-01-01T00:00:00.000Z"fixture-6d61004e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00792024-01-01T00:00:00.000Z"fixture-6d61004f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00802024-01-01T00:00:00.000Z"fixture-6d610050"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00812024-01-01T00:00:00.000Z"fixture-6d610051"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00822024-01-01T00:00:00.000Z"fixture-6d610052"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00832024-01-01T00:00:00.000Z"fixture-6d610053"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00842024-01-01T00:00:00.000Z"fixture-6d610054"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00852024-01-01T00:00:00.000Z"fixture-6d610055"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00862024-01-01T00:00:00.000Z"fixture-6d610056"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00872024-01-01T00:00:00.000Z"fixture-6d610057"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00882024-01-01T00:00:00.000Z"fixture-6d610058"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00892024-01-01T00:00:00.000Z"fixture-6d610059"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00902024-01-01T00:00:00.000Z"fixture-6d61005a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00912024-01-01T00:00:00.000Z"fixture-6d61005b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00922024-01-01T00:00:00.000Z"fixture-6d61005c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00932024-01-01T00:00:00.000Z"fixture-6d61005d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00942024-01-01T00:00:00.000Z"fixture-6d61005e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00952024-01-01T00:00:00.000Z"fixture-6d61005f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00962024-01-01T00:00:00.000Z"fixture-6d610060"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00972024-01-01T00:00:00.000Z"fixture-6d610061"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00982024-01-01T00:00:00.000Z"fixture-6d610062"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00992024-01-01T00:00:00.000Z"fixture-6d610063"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01002024-01-01T00:00:00.000Z"fixture-6d610064"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01012024-01-01T00:00:00.000Z"fixture-6d610065"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01022024-01-01T00:00:00.000Z"fixture-6d610066"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01032024-01-01T00:00:00.000Z"fixture-6d610067"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01042024-01-01T00:00:00.000Z"fixture-6d610068"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01052024-01-01T00:00:00.000Z"fixture-6d610069"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01062024-01-01T00:00:00.000Z"fixture-6d61006a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01072024-01-01T00:00:00.000Z"fixture-6d61006b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01082024-01-01T00:00:00.000Z"fixture-6d61006c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01092024-01-01T00:00:00.000Z"fixture-6d61006d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01102024-01-01T00:00:00.000Z"fixture-6d61006e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01112024-01-01T00:00:00.000Z"fixture-6d61006f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01122024-01-01T00:00:00.000Z"fixture-6d610070"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01132024-01-01T00:00:00.000Z"fixture-6d610071"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01142024-01-01T00:00:00.000Z"fixture-6d610072"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01152024-01-01T00:00:00.000Z"fixture-6d610073"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01162024-01-01T00:00:00.000Z"fixture-6d610074"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01172024-01-01T00:00:00.000Z"fixture-6d610075"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01182024-01-01T00:00:00.000Z"fixture-6d610076"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01192024-01-01T00:00:00.000Z"fixture-6d610077"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01202024-01-01T00:00:00.000Z"fixture-6d610078"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01212024-01-01T00:00:00.000Z"fixture-6d610079"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01222024-01-01T00:00:00.000Z"fixture-6d61007a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01232024-01-01T00:00:00.000Z"fixture-6d61007b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01242024-01-01T00:00:00.000Z"fixture-6d61007c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01252024-01-01T00:00:00.000Z"fixture-6d61007d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01262024-01-01T00:00:00.000Z"fixture-6d61007e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01272024-01-01T00:00:00.000Z"fixture-6d61007f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01282024-01-01T00:00:00.000Z"fixture-6d610080"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01292024-01-01T00:00:00.000Z"fixture-6d610081"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01302024-01-01T00:00:00.000Z"fixture-6d610082"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01312024-01-01T00:00:00.000Z"fixture-6d610083"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01322024-01-01T00:00:00.000Z"fixture-6d610084"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01332024-01-01T00:00:00.000Z"fixture-6d610085"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01342024-01-01T00:00:00.000Z"fixture-6d610086"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01352024-01-01T00:00:00.000Z"fixture-6d610087"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01362024-01-01T00:00:00.000Z"fixture-6d610088"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01372024-01-01T00:00:00.000Z"fixture-6d610089"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01382024-01-01T00:00:00.000Z"fixture-6d61008a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01392024-01-01T00:00:00.000Z"fixture-6d61008b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01402024-01-01T00:00:00.000Z"fixture-6d61008c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01412024-01-01T00:00:00.000Z"fixture-6d61008d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01422024-01-01T00:00:00.000Z"fixture-6d61008e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01432024-01-01T00:00:00.000Z"fixture-6d61008f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01442024-01-01T00:00:00.000Z"fixture-6d610090"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01452024-01-01T00:00:00.000Z"fixture-6d610091"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01462024-01-01T00:00:00.000Z"fixture-6d610092"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01472024-01-01T00:00:00.000Z"fixture-6d610093"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01482024-01-01T00:00:00.000Z"fixture-6d610094"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01492024-01-01T00:00:00.000Z"fixture-6d610095"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01502024-01-01T00:00:00.000Z"fixture-6d610096"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01512024-01-01T00:00:00.000Z"fixture-6d610097"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01522024-01-01T00:00:00.000Z"fixture-6d610098"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01532024-01-01T00:00:00.000Z"fixture-6d610099"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01542024-01-01T00:00:00.000Z"fixture-6d61009a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01552024-01-01T00:00:00.000Z"fixture-6d61009b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01562024-01-01T00:00:00.000Z"fixture-6d61009c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01572024-01-01T00:00:00.000Z"fixture-6d61009d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01582024-01-01T00:00:00.000Z"fixture-6d61009e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01592024-01-01T00:00:00.000Z"fixture-6d61009f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01602024-01-01T00:00:00.000Z"fixture-6d6100a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01612024-01-01T00:00:00.000Z"fixture-6d6100a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01622024-01-01T00:00:00.000Z"fixture-6d6100a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01632024-01-01T00:00:00.000Z"fixture-6d6100a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01642024-01-01T00:00:00.000Z"fixture-6d6100a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01652024-01-01T00:00:00.000Z"fixture-6d6100a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01662024-01-01T00:00:00.000Z"fixture-6d6100a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01672024-01-01T00:00:00.000Z"fixture-6d6100a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01682024-01-01T00:00:00.000Z"fixture-6d6100a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01692024-01-01T00:00:00.000Z"fixture-6d6100a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01702024-01-01T00:00:00.000Z"fixture-6d6100aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01712024-01-01T00:00:00.000Z"fixture-6d6100ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01722024-01-01T00:00:00.000Z"fixture-6d6100ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01732024-01-01T00:00:00.000Z"fixture-6d6100ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01742024-01-01T00:00:00.000Z"fixture-6d6100ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01752024-01-01T00:00:00.000Z"fixture-6d6100af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01762024-01-01T00:00:00.000Z"fixture-6d6100b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01772024-01-01T00:00:00.000Z"fixture-6d6100b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01782024-01-01T00:00:00.000Z"fixture-6d6100b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01792024-01-01T00:00:00.000Z"fixture-6d6100b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01802024-01-01T00:00:00.000Z"fixture-6d6100b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01812024-01-01T00:00:00.000Z"fixture-6d6100b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01822024-01-01T00:00:00.000Z"fixture-6d6100b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01832024-01-01T00:00:00.000Z"fixture-6d6100b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01842024-01-01T00:00:00.000Z"fixture-6d6100b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01852024-01-01T00:00:00.000Z"fixture-6d6100b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01862024-01-01T00:00:00.000Z"fixture-6d6100ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01872024-01-01T00:00:00.000Z"fixture-6d6100bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01882024-01-01T00:00:00.000Z"fixture-6d6100bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01892024-01-01T00:00:00.000Z"fixture-6d6100bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01902024-01-01T00:00:00.000Z"fixture-6d6100be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01912024-01-01T00:00:00.000Z"fixture-6d6100bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01922024-01-01T00:00:00.000Z"fixture-6d6100c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01932024-01-01T00:00:00.000Z"fixture-6d6100c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01942024-01-01T00:00:00.000Z"fixture-6d6100c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01952024-01-01T00:00:00.000Z"fixture-6d6100c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01962024-01-01T00:00:00.000Z"fixture-6d6100c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01972024-01-01T00:00:00.000Z"fixture-6d6100c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01982024-01-01T00:00:00.000Z"fixture-6d6100c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01992024-01-01T00:00:00.000Z"fixture-6d6100c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02002024-01-01T00:00:00.000Z"fixture-6d6100c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02012024-01-01T00:00:00.000Z"fixture-6d6100c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02022024-01-01T00:00:00.000Z"fixture-6d6100ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02032024-01-01T00:00:00.000Z"fixture-6d6100cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02042024-01-01T00:00:00.000Z"fixture-6d6100cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02052024-01-01T00:00:00.000Z"fixture-6d6100cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02062024-01-01T00:00:00.000Z"fixture-6d6100ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02072024-01-01T00:00:00.000Z"fixture-6d6100cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02082024-01-01T00:00:00.000Z"fixture-6d6100d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02092024-01-01T00:00:00.000Z"fixture-6d6100d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02102024-01-01T00:00:00.000Z"fixture-6d6100d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02112024-01-01T00:00:00.000Z"fixture-6d6100d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02122024-01-01T00:00:00.000Z"fixture-6d6100d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02132024-01-01T00:00:00.000Z"fixture-6d6100d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02142024-01-01T00:00:00.000Z"fixture-6d6100d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02152024-01-01T00:00:00.000Z"fixture-6d6100d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02162024-01-01T00:00:00.000Z"fixture-6d6100d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02172024-01-01T00:00:00.000Z"fixture-6d6100d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02182024-01-01T00:00:00.000Z"fixture-6d6100da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02192024-01-01T00:00:00.000Z"fixture-6d6100db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02202024-01-01T00:00:00.000Z"fixture-6d6100dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02212024-01-01T00:00:00.000Z"fixture-6d6100dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02222024-01-01T00:00:00.000Z"fixture-6d6100de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02232024-01-01T00:00:00.000Z"fixture-6d6100df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02242024-01-01T00:00:00.000Z"fixture-6d6100e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02252024-01-01T00:00:00.000Z"fixture-6d6100e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02262024-01-01T00:00:00.000Z"fixture-6d6100e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02272024-01-01T00:00:00.000Z"fixture-6d6100e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02282024-01-01T00:00:00.000Z"fixture-6d6100e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02292024-01-01T00:00:00.000Z"fixture-6d6100e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02302024-01-01T00:00:00.000Z"fixture-6d6100e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02312024-01-01T00:00:00.000Z"fixture-6d6100e7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02322024-01-01T00:00:00.000Z"fixture-6d6100e8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02332024-01-01T00:00:00.000Z"fixture-6d6100e9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02342024-01-01T00:00:00.000Z"fixture-6d6100ea"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02352024-01-01T00:00:00.000Z"fixture-6d6100eb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02362024-01-01T00:00:00.000Z"fixture-6d6100ec"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02372024-01-01T00:00:00.000Z"fixture-6d6100ed"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02382024-01-01T00:00:00.000Z"fixture-6d6100ee"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02392024-01-01T00:00:00.000Z"fixture-6d6100ef"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02402024-01-01T00:00:00.000Z"fixture-6d6100f0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02412024-01-01T00:00:00.000Z"fixture-6d6100f1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02422024-01-01T00:00:00.000Z"fixture-6d6100f2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02432024-01-01T00:00:00.000Z"fixture-6d6100f3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02442024-01-01T00:00:00.000Z"fixture-6d6100f4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02452024-01-01T00:00:00.000Z"fixture-6d6100f5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02462024-01-01T00:00:00.000Z"fixture-6d6100f6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02472024-01-01T00:00:00.000Z"fixture-6d6100f7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02482024-01-01T00:00:00.000Z"fixture-6d6100f8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02492024-01-01T00:00:00.000Z"fixture-6d6100f9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02502024-01-01T00:00:00.000Z"fixture-6d6100fa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02512024-01-01T00:00:00.000Z"fixture-6d6100fb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02522024-01-01T00:00:00.000Z"fixture-6d6100fc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02532024-01-01T00:00:00.000Z"fixture-6d6100fd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02542024-01-01T00:00:00.000Z"fixture-6d6100fe"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02552024-01-01T00:00:00.000Z"fixture-6d6100ff"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02562024-01-01T00:00:00.000Z"fixture-6d610100"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02572024-01-01T00:00:00.000Z"fixture-6d610101"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02582024-01-01T00:00:00.000Z"fixture-6d610102"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02592024-01-01T00:00:00.000Z"fixture-6d610103"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02602024-01-01T00:00:00.000Z"fixture-6d610104"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02612024-01-01T00:00:00.000Z"fixture-6d610105"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02622024-01-01T00:00:00.000Z"fixture-6d610106"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02632024-01-01T00:00:00.000Z"fixture-6d610107"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02642024-01-01T00:00:00.000Z"fixture-6d610108"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02652024-01-01T00:00:00.000Z"fixture-6d610109"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02662024-01-01T00:00:00.000Z"fixture-6d61010a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02672024-01-01T00:00:00.000Z"fixture-6d61010b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02682024-01-01T00:00:00.000Z"fixture-6d61010c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02692024-01-01T00:00:00.000Z"fixture-6d61010d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02702024-01-01T00:00:00.000Z"fixture-6d61010e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02712024-01-01T00:00:00.000Z"fixture-6d61010f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02722024-01-01T00:00:00.000Z"fixture-6d610110"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02732024-01-01T00:00:00.000Z"fixture-6d610111"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02742024-01-01T00:00:00.000Z"fixture-6d610112"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02752024-01-01T00:00:00.000Z"fixture-6d610113"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02762024-01-01T00:00:00.000Z"fixture-6d610114"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02772024-01-01T00:00:00.000Z"fixture-6d610115"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02782024-01-01T00:00:00.000Z"fixture-6d610116"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02792024-01-01T00:00:00.000Z"fixture-6d610117"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02802024-01-01T00:00:00.000Z"fixture-6d610118"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02812024-01-01T00:00:00.000Z"fixture-6d610119"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02822024-01-01T00:00:00.000Z"fixture-6d61011a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02832024-01-01T00:00:00.000Z"fixture-6d61011b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02842024-01-01T00:00:00.000Z"fixture-6d61011c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02852024-01-01T00:00:00.000Z"fixture-6d61011d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02862024-01-01T00:00:00.000Z"fixture-6d61011e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02872024-01-01T00:00:00.000Z"fixture-6d61011f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02882024-01-01T00:00:00.000Z"fixture-6d610120"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02892024-01-01T00:00:00.000Z"fixture-6d610121"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02902024-01-01T00:00:00.000Z"fixture-6d610122"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02912024-01-01T00:00:00.000Z"fixture-6d610123"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02922024-01-01T00:00:00.000Z"fixture-6d610124"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02932024-01-01T00:00:00.000Z"fixture-6d610125"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02942024-01-01T00:00:00.000Z"fixture-6d610126"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02952024-01-01T00:00:00.000Z"fixture-6d610127"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02962024-01-01T00:00:00.000Z"fixture-6d610128"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02972024-01-01T00:00:00.000Z"fixture-6d610129"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02982024-01-01T00:00:00.000Z"fixture-6d61012a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02992024-01-01T00:00:00.000Z"fixture-6d61012b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03002024-01-01T00:00:00.000Z"fixture-6d61012c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03012024-01-01T00:00:00.000Z"fixture-6d61012d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03022024-01-01T00:00:00.000Z"fixture-6d61012e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03032024-01-01T00:00:00.000Z"fixture-6d61012f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03042024-01-01T00:00:00.000Z"fixture-6d610130"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03052024-01-01T00:00:00.000Z"fixture-6d610131"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03062024-01-01T00:00:00.000Z"fixture-6d610132"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03072024-01-01T00:00:00.000Z"fixture-6d610133"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03082024-01-01T00:00:00.000Z"fixture-6d610134"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03092024-01-01T00:00:00.000Z"fixture-6d610135"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03102024-01-01T00:00:00.000Z"fixture-6d610136"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03112024-01-01T00:00:00.000Z"fixture-6d610137"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03122024-01-01T00:00:00.000Z"fixture-6d610138"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03132024-01-01T00:00:00.000Z"fixture-6d610139"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03142024-01-01T00:00:00.000Z"fixture-6d61013a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03152024-01-01T00:00:00.000Z"fixture-6d61013b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03162024-01-01T00:00:00.000Z"fixture-6d61013c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03172024-01-01T00:00:00.000Z"fixture-6d61013d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03182024-01-01T00:00:00.000Z"fixture-6d61013e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03192024-01-01T00:00:00.000Z"fixture-6d61013f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03202024-01-01T00:00:00.000Z"fixture-6d610140"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03212024-01-01T00:00:00.000Z"fixture-6d610141"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03222024-01-01T00:00:00.000Z"fixture-6d610142"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03232024-01-01T00:00:00.000Z"fixture-6d610143"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03242024-01-01T00:00:00.000Z"fixture-6d610144"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03252024-01-01T00:00:00.000Z"fixture-6d610145"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03262024-01-01T00:00:00.000Z"fixture-6d610146"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03272024-01-01T00:00:00.000Z"fixture-6d610147"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03282024-01-01T00:00:00.000Z"fixture-6d610148"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03292024-01-01T00:00:00.000Z"fixture-6d610149"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03302024-01-01T00:00:00.000Z"fixture-6d61014a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03312024-01-01T00:00:00.000Z"fixture-6d61014b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03322024-01-01T00:00:00.000Z"fixture-6d61014c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03332024-01-01T00:00:00.000Z"fixture-6d61014d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03342024-01-01T00:00:00.000Z"fixture-6d61014e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03352024-01-01T00:00:00.000Z"fixture-6d61014f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03362024-01-01T00:00:00.000Z"fixture-6d610150"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03372024-01-01T00:00:00.000Z"fixture-6d610151"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03382024-01-01T00:00:00.000Z"fixture-6d610152"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03392024-01-01T00:00:00.000Z"fixture-6d610153"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03402024-01-01T00:00:00.000Z"fixture-6d610154"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03412024-01-01T00:00:00.000Z"fixture-6d610155"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03422024-01-01T00:00:00.000Z"fixture-6d610156"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03432024-01-01T00:00:00.000Z"fixture-6d610157"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03442024-01-01T00:00:00.000Z"fixture-6d610158"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03452024-01-01T00:00:00.000Z"fixture-6d610159"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03462024-01-01T00:00:00.000Z"fixture-6d61015a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03472024-01-01T00:00:00.000Z"fixture-6d61015b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03482024-01-01T00:00:00.000Z"fixture-6d61015c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03492024-01-01T00:00:00.000Z"fixture-6d61015d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03502024-01-01T00:00:00.000Z"fixture-6d61015e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03512024-01-01T00:00:00.000Z"fixture-6d61015f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03522024-01-01T00:00:00.000Z"fixture-6d610160"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03532024-01-01T00:00:00.000Z"fixture-6d610161"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03542024-01-01T00:00:00.000Z"fixture-6d610162"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03552024-01-01T00:00:00.000Z"fixture-6d610163"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03562024-01-01T00:00:00.000Z"fixture-6d610164"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03572024-01-01T00:00:00.000Z"fixture-6d610165"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03582024-01-01T00:00:00.000Z"fixture-6d610166"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03592024-01-01T00:00:00.000Z"fixture-6d610167"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03602024-01-01T00:00:00.000Z"fixture-6d610168"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03612024-01-01T00:00:00.000Z"fixture-6d610169"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03622024-01-01T00:00:00.000Z"fixture-6d61016a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03632024-01-01T00:00:00.000Z"fixture-6d61016b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03642024-01-01T00:00:00.000Z"fixture-6d61016c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03652024-01-01T00:00:00.000Z"fixture-6d61016d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03662024-01-01T00:00:00.000Z"fixture-6d61016e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03672024-01-01T00:00:00.000Z"fixture-6d61016f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03682024-01-01T00:00:00.000Z"fixture-6d610170"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03692024-01-01T00:00:00.000Z"fixture-6d610171"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03702024-01-01T00:00:00.000Z"fixture-6d610172"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03712024-01-01T00:00:00.000Z"fixture-6d610173"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03722024-01-01T00:00:00.000Z"fixture-6d610174"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03732024-01-01T00:00:00.000Z"fixture-6d610175"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03742024-01-01T00:00:00.000Z"fixture-6d610176"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03752024-01-01T00:00:00.000Z"fixture-6d610177"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03762024-01-01T00:00:00.000Z"fixture-6d610178"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03772024-01-01T00:00:00.000Z"fixture-6d610179"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03782024-01-01T00:00:00.000Z"fixture-6d61017a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03792024-01-01T00:00:00.000Z"fixture-6d61017b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03802024-01-01T00:00:00.000Z"fixture-6d61017c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03812024-01-01T00:00:00.000Z"fixture-6d61017d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03822024-01-01T00:00:00.000Z"fixture-6d61017e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03832024-01-01T00:00:00.000Z"fixture-6d61017f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03842024-01-01T00:00:00.000Z"fixture-6d610180"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03852024-01-01T00:00:00.000Z"fixture-6d610181"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03862024-01-01T00:00:00.000Z"fixture-6d610182"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03872024-01-01T00:00:00.000Z"fixture-6d610183"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03882024-01-01T00:00:00.000Z"fixture-6d610184"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03892024-01-01T00:00:00.000Z"fixture-6d610185"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03902024-01-01T00:00:00.000Z"fixture-6d610186"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03912024-01-01T00:00:00.000Z"fixture-6d610187"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03922024-01-01T00:00:00.000Z"fixture-6d610188"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03932024-01-01T00:00:00.000Z"fixture-6d610189"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03942024-01-01T00:00:00.000Z"fixture-6d61018a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03952024-01-01T00:00:00.000Z"fixture-6d61018b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03962024-01-01T00:00:00.000Z"fixture-6d61018c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03972024-01-01T00:00:00.000Z"fixture-6d61018d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03982024-01-01T00:00:00.000Z"fixture-6d61018e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03992024-01-01T00:00:00.000Z"fixture-6d61018f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04002024-01-01T00:00:00.000Z"fixture-6d610190"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04012024-01-01T00:00:00.000Z"fixture-6d610191"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04022024-01-01T00:00:00.000Z"fixture-6d610192"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04032024-01-01T00:00:00.000Z"fixture-6d610193"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04042024-01-01T00:00:00.000Z"fixture-6d610194"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04052024-01-01T00:00:00.000Z"fixture-6d610195"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04062024-01-01T00:00:00.000Z"fixture-6d610196"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04072024-01-01T00:00:00.000Z"fixture-6d610197"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04082024-01-01T00:00:00.000Z"fixture-6d610198"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04092024-01-01T00:00:00.000Z"fixture-6d610199"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04102024-01-01T00:00:00.000Z"fixture-6d61019a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04112024-01-01T00:00:00.000Z"fixture-6d61019b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04122024-01-01T00:00:00.000Z"fixture-6d61019c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04132024-01-01T00:00:00.000Z"fixture-6d61019d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04142024-01-01T00:00:00.000Z"fixture-6d61019e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04152024-01-01T00:00:00.000Z"fixture-6d61019f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04162024-01-01T00:00:00.000Z"fixture-6d6101a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04172024-01-01T00:00:00.000Z"fixture-6d6101a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04182024-01-01T00:00:00.000Z"fixture-6d6101a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04192024-01-01T00:00:00.000Z"fixture-6d6101a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04202024-01-01T00:00:00.000Z"fixture-6d6101a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04212024-01-01T00:00:00.000Z"fixture-6d6101a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04222024-01-01T00:00:00.000Z"fixture-6d6101a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04232024-01-01T00:00:00.000Z"fixture-6d6101a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04242024-01-01T00:00:00.000Z"fixture-6d6101a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04252024-01-01T00:00:00.000Z"fixture-6d6101a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04262024-01-01T00:00:00.000Z"fixture-6d6101aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04272024-01-01T00:00:00.000Z"fixture-6d6101ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04282024-01-01T00:00:00.000Z"fixture-6d6101ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04292024-01-01T00:00:00.000Z"fixture-6d6101ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04302024-01-01T00:00:00.000Z"fixture-6d6101ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04312024-01-01T00:00:00.000Z"fixture-6d6101af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04322024-01-01T00:00:00.000Z"fixture-6d6101b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04332024-01-01T00:00:00.000Z"fixture-6d6101b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04342024-01-01T00:00:00.000Z"fixture-6d6101b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04352024-01-01T00:00:00.000Z"fixture-6d6101b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04362024-01-01T00:00:00.000Z"fixture-6d6101b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04372024-01-01T00:00:00.000Z"fixture-6d6101b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04382024-01-01T00:00:00.000Z"fixture-6d6101b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04392024-01-01T00:00:00.000Z"fixture-6d6101b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04402024-01-01T00:00:00.000Z"fixture-6d6101b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04412024-01-01T00:00:00.000Z"fixture-6d6101b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04422024-01-01T00:00:00.000Z"fixture-6d6101ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04432024-01-01T00:00:00.000Z"fixture-6d6101bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04442024-01-01T00:00:00.000Z"fixture-6d6101bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04452024-01-01T00:00:00.000Z"fixture-6d6101bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04462024-01-01T00:00:00.000Z"fixture-6d6101be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04472024-01-01T00:00:00.000Z"fixture-6d6101bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04482024-01-01T00:00:00.000Z"fixture-6d6101c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04492024-01-01T00:00:00.000Z"fixture-6d6101c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04502024-01-01T00:00:00.000Z"fixture-6d6101c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04512024-01-01T00:00:00.000Z"fixture-6d6101c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04522024-01-01T00:00:00.000Z"fixture-6d6101c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04532024-01-01T00:00:00.000Z"fixture-6d6101c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04542024-01-01T00:00:00.000Z"fixture-6d6101c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04552024-01-01T00:00:00.000Z"fixture-6d6101c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04562024-01-01T00:00:00.000Z"fixture-6d6101c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04572024-01-01T00:00:00.000Z"fixture-6d6101c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04582024-01-01T00:00:00.000Z"fixture-6d6101ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04592024-01-01T00:00:00.000Z"fixture-6d6101cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04602024-01-01T00:00:00.000Z"fixture-6d6101cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04612024-01-01T00:00:00.000Z"fixture-6d6101cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04622024-01-01T00:00:00.000Z"fixture-6d6101ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04632024-01-01T00:00:00.000Z"fixture-6d6101cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04642024-01-01T00:00:00.000Z"fixture-6d6101d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04652024-01-01T00:00:00.000Z"fixture-6d6101d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04662024-01-01T00:00:00.000Z"fixture-6d6101d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04672024-01-01T00:00:00.000Z"fixture-6d6101d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04682024-01-01T00:00:00.000Z"fixture-6d6101d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04692024-01-01T00:00:00.000Z"fixture-6d6101d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04702024-01-01T00:00:00.000Z"fixture-6d6101d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04712024-01-01T00:00:00.000Z"fixture-6d6101d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04722024-01-01T00:00:00.000Z"fixture-6d6101d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04732024-01-01T00:00:00.000Z"fixture-6d6101d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04742024-01-01T00:00:00.000Z"fixture-6d6101da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04752024-01-01T00:00:00.000Z"fixture-6d6101db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04762024-01-01T00:00:00.000Z"fixture-6d6101dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04772024-01-01T00:00:00.000Z"fixture-6d6101dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04782024-01-01T00:00:00.000Z"fixture-6d6101de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04792024-01-01T00:00:00.000Z"fixture-6d6101df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04802024-01-01T00:00:00.000Z"fixture-6d6101e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04812024-01-01T00:00:00.000Z"fixture-6d6101e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04822024-01-01T00:00:00.000Z"fixture-6d6101e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04832024-01-01T00:00:00.000Z"fixture-6d6101e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04842024-01-01T00:00:00.000Z"fixture-6d6101e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04852024-01-01T00:00:00.000Z"fixture-6d6101e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04862024-01-01T00:00:00.000Z"fixture-6d6101e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04872024-01-01T00:00:00.000Z"fixture-6d6101e7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04882024-01-01T00:00:00.000Z"fixture-6d6101e8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04892024-01-01T00:00:00.000Z"fixture-6d6101e9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04902024-01-01T00:00:00.000Z"fixture-6d6101ea"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04912024-01-01T00:00:00.000Z"fixture-6d6101eb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04922024-01-01T00:00:00.000Z"fixture-6d6101ec"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04932024-01-01T00:00:00.000Z"fixture-6d6101ed"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04942024-01-01T00:00:00.000Z"fixture-6d6101ee"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04952024-01-01T00:00:00.000Z"fixture-6d6101ef"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04962024-01-01T00:00:00.000Z"fixture-6d6101f0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04972024-01-01T00:00:00.000Z"fixture-6d6101f1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04982024-01-01T00:00:00.000Z"fixture-6d6101f2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04992024-01-01T00:00:00.000Z"fixture-6d6101f3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05002024-01-01T00:00:00.000Z"fixture-6d6101f4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05012024-01-01T00:00:00.000Z"fixture-6d6101f5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05022024-01-01T00:00:00.000Z"fixture-6d6101f6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05032024-01-01T00:00:00.000Z"fixture-6d6101f7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05042024-01-01T00:00:00.000Z"fixture-6d6101f8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05052024-01-01T00:00:00.000Z"fixture-6d6101f9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05062024-01-01T00:00:00.000Z"fixture-6d6101fa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05072024-01-01T00:00:00.000Z"fixture-6d6101fb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05082024-01-01T00:00:00.000Z"fixture-6d6101fc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05092024-01-01T00:00:00.000Z"fixture-6d6101fd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05102024-01-01T00:00:00.000Z"fixture-6d6101fe"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05112024-01-01T00:00:00.000Z"fixture-6d6101ff"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05122024-01-01T00:00:00.000Z"fixture-6d610200"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05132024-01-01T00:00:00.000Z"fixture-6d610201"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05142024-01-01T00:00:00.000Z"fixture-6d610202"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05152024-01-01T00:00:00.000Z"fixture-6d610203"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05162024-01-01T00:00:00.000Z"fixture-6d610204"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05172024-01-01T00:00:00.000Z"fixture-6d610205"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05182024-01-01T00:00:00.000Z"fixture-6d610206"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05192024-01-01T00:00:00.000Z"fixture-6d610207"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05202024-01-01T00:00:00.000Z"fixture-6d610208"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05212024-01-01T00:00:00.000Z"fixture-6d610209"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05222024-01-01T00:00:00.000Z"fixture-6d61020a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05232024-01-01T00:00:00.000Z"fixture-6d61020b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05242024-01-01T00:00:00.000Z"fixture-6d61020c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05252024-01-01T00:00:00.000Z"fixture-6d61020d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05262024-01-01T00:00:00.000Z"fixture-6d61020e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05272024-01-01T00:00:00.000Z"fixture-6d61020f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05282024-01-01T00:00:00.000Z"fixture-6d610210"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05292024-01-01T00:00:00.000Z"fixture-6d610211"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05302024-01-01T00:00:00.000Z"fixture-6d610212"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05312024-01-01T00:00:00.000Z"fixture-6d610213"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05322024-01-01T00:00:00.000Z"fixture-6d610214"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05332024-01-01T00:00:00.000Z"fixture-6d610215"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05342024-01-01T00:00:00.000Z"fixture-6d610216"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05352024-01-01T00:00:00.000Z"fixture-6d610217"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05362024-01-01T00:00:00.000Z"fixture-6d610218"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05372024-01-01T00:00:00.000Z"fixture-6d610219"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05382024-01-01T00:00:00.000Z"fixture-6d61021a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05392024-01-01T00:00:00.000Z"fixture-6d61021b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05402024-01-01T00:00:00.000Z"fixture-6d61021c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05412024-01-01T00:00:00.000Z"fixture-6d61021d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05422024-01-01T00:00:00.000Z"fixture-6d61021e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05432024-01-01T00:00:00.000Z"fixture-6d61021f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05442024-01-01T00:00:00.000Z"fixture-6d610220"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05452024-01-01T00:00:00.000Z"fixture-6d610221"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05462024-01-01T00:00:00.000Z"fixture-6d610222"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05472024-01-01T00:00:00.000Z"fixture-6d610223"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05482024-01-01T00:00:00.000Z"fixture-6d610224"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05492024-01-01T00:00:00.000Z"fixture-6d610225"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05502024-01-01T00:00:00.000Z"fixture-6d610226"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05512024-01-01T00:00:00.000Z"fixture-6d610227"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05522024-01-01T00:00:00.000Z"fixture-6d610228"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05532024-01-01T00:00:00.000Z"fixture-6d610229"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05542024-01-01T00:00:00.000Z"fixture-6d61022a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05552024-01-01T00:00:00.000Z"fixture-6d61022b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05562024-01-01T00:00:00.000Z"fixture-6d61022c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05572024-01-01T00:00:00.000Z"fixture-6d61022d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05582024-01-01T00:00:00.000Z"fixture-6d61022e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05592024-01-01T00:00:00.000Z"fixture-6d61022f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05602024-01-01T00:00:00.000Z"fixture-6d610230"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05612024-01-01T00:00:00.000Z"fixture-6d610231"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05622024-01-01T00:00:00.000Z"fixture-6d610232"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05632024-01-01T00:00:00.000Z"fixture-6d610233"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05642024-01-01T00:00:00.000Z"fixture-6d610234"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05652024-01-01T00:00:00.000Z"fixture-6d610235"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05662024-01-01T00:00:00.000Z"fixture-6d610236"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05672024-01-01T00:00:00.000Z"fixture-6d610237"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05682024-01-01T00:00:00.000Z"fixture-6d610238"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05692024-01-01T00:00:00.000Z"fixture-6d610239"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05702024-01-01T00:00:00.000Z"fixture-6d61023a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05712024-01-01T00:00:00.000Z"fixture-6d61023b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05722024-01-01T00:00:00.000Z"fixture-6d61023c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05732024-01-01T00:00:00.000Z"fixture-6d61023d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05742024-01-01T00:00:00.000Z"fixture-6d61023e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05752024-01-01T00:00:00.000Z"fixture-6d61023f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05762024-01-01T00:00:00.000Z"fixture-6d610240"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05772024-01-01T00:00:00.000Z"fixture-6d610241"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05782024-01-01T00:00:00.000Z"fixture-6d610242"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05792024-01-01T00:00:00.000Z"fixture-6d610243"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05802024-01-01T00:00:00.000Z"fixture-6d610244"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05812024-01-01T00:00:00.000Z"fixture-6d610245"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05822024-01-01T00:00:00.000Z"fixture-6d610246"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05832024-01-01T00:00:00.000Z"fixture-6d610247"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05842024-01-01T00:00:00.000Z"fixture-6d610248"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05852024-01-01T00:00:00.000Z"fixture-6d610249"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05862024-01-01T00:00:00.000Z"fixture-6d61024a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05872024-01-01T00:00:00.000Z"fixture-6d61024b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05882024-01-01T00:00:00.000Z"fixture-6d61024c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05892024-01-01T00:00:00.000Z"fixture-6d61024d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05902024-01-01T00:00:00.000Z"fixture-6d61024e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05912024-01-01T00:00:00.000Z"fixture-6d61024f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05922024-01-01T00:00:00.000Z"fixture-6d610250"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05932024-01-01T00:00:00.000Z"fixture-6d610251"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05942024-01-01T00:00:00.000Z"fixture-6d610252"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05952024-01-01T00:00:00.000Z"fixture-6d610253"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05962024-01-01T00:00:00.000Z"fixture-6d610254"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05972024-01-01T00:00:00.000Z"fixture-6d610255"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05982024-01-01T00:00:00.000Z"fixture-6d610256"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05992024-01-01T00:00:00.000Z"fixture-6d610257"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06002024-01-01T00:00:00.000Z"fixture-6d610258"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06012024-01-01T00:00:00.000Z"fixture-6d610259"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06022024-01-01T00:00:00.000Z"fixture-6d61025a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06032024-01-01T00:00:00.000Z"fixture-6d61025b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06042024-01-01T00:00:00.000Z"fixture-6d61025c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06052024-01-01T00:00:00.000Z"fixture-6d61025d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06062024-01-01T00:00:00.000Z"fixture-6d61025e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06072024-01-01T00:00:00.000Z"fixture-6d61025f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06082024-01-01T00:00:00.000Z"fixture-6d610260"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06092024-01-01T00:00:00.000Z"fixture-6d610261"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06102024-01-01T00:00:00.000Z"fixture-6d610262"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06112024-01-01T00:00:00.000Z"fixture-6d610263"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06122024-01-01T00:00:00.000Z"fixture-6d610264"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06132024-01-01T00:00:00.000Z"fixture-6d610265"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06142024-01-01T00:00:00.000Z"fixture-6d610266"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06152024-01-01T00:00:00.000Z"fixture-6d610267"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06162024-01-01T00:00:00.000Z"fixture-6d610268"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06172024-01-01T00:00:00.000Z"fixture-6d610269"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06182024-01-01T00:00:00.000Z"fixture-6d61026a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06192024-01-01T00:00:00.000Z"fixture-6d61026b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06202024-01-01T00:00:00.000Z"fixture-6d61026c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06212024-01-01T00:00:00.000Z"fixture-6d61026d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06222024-01-01T00:00:00.000Z"fixture-6d61026e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06232024-01-01T00:00:00.000Z"fixture-6d61026f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06242024-01-01T00:00:00.000Z"fixture-6d610270"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06252024-01-01T00:00:00.000Z"fixture-6d610271"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06262024-01-01T00:00:00.000Z"fixture-6d610272"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06272024-01-01T00:00:00.000Z"fixture-6d610273"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06282024-01-01T00:00:00.000Z"fixture-6d610274"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06292024-01-01T00:00:00.000Z"fixture-6d610275"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06302024-01-01T00:00:00.000Z"fixture-6d610276"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06312024-01-01T00:00:00.000Z"fixture-6d610277"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06322024-01-01T00:00:00.000Z"fixture-6d610278"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06332024-01-01T00:00:00.000Z"fixture-6d610279"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06342024-01-01T00:00:00.000Z"fixture-6d61027a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06352024-01-01T00:00:00.000Z"fixture-6d61027b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06362024-01-01T00:00:00.000Z"fixture-6d61027c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06372024-01-01T00:00:00.000Z"fixture-6d61027d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06382024-01-01T00:00:00.000Z"fixture-6d61027e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06392024-01-01T00:00:00.000Z"fixture-6d61027f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06402024-01-01T00:00:00.000Z"fixture-6d610280"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06412024-01-01T00:00:00.000Z"fixture-6d610281"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06422024-01-01T00:00:00.000Z"fixture-6d610282"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06432024-01-01T00:00:00.000Z"fixture-6d610283"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06442024-01-01T00:00:00.000Z"fixture-6d610284"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06452024-01-01T00:00:00.000Z"fixture-6d610285"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06462024-01-01T00:00:00.000Z"fixture-6d610286"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06472024-01-01T00:00:00.000Z"fixture-6d610287"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06482024-01-01T00:00:00.000Z"fixture-6d610288"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06492024-01-01T00:00:00.000Z"fixture-6d610289"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06502024-01-01T00:00:00.000Z"fixture-6d61028a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06512024-01-01T00:00:00.000Z"fixture-6d61028b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06522024-01-01T00:00:00.000Z"fixture-6d61028c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06532024-01-01T00:00:00.000Z"fixture-6d61028d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06542024-01-01T00:00:00.000Z"fixture-6d61028e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06552024-01-01T00:00:00.000Z"fixture-6d61028f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06562024-01-01T00:00:00.000Z"fixture-6d610290"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06572024-01-01T00:00:00.000Z"fixture-6d610291"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06582024-01-01T00:00:00.000Z"fixture-6d610292"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06592024-01-01T00:00:00.000Z"fixture-6d610293"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06602024-01-01T00:00:00.000Z"fixture-6d610294"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06612024-01-01T00:00:00.000Z"fixture-6d610295"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06622024-01-01T00:00:00.000Z"fixture-6d610296"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06632024-01-01T00:00:00.000Z"fixture-6d610297"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06642024-01-01T00:00:00.000Z"fixture-6d610298"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06652024-01-01T00:00:00.000Z"fixture-6d610299"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06662024-01-01T00:00:00.000Z"fixture-6d61029a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06672024-01-01T00:00:00.000Z"fixture-6d61029b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06682024-01-01T00:00:00.000Z"fixture-6d61029c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06692024-01-01T00:00:00.000Z"fixture-6d61029d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06702024-01-01T00:00:00.000Z"fixture-6d61029e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06712024-01-01T00:00:00.000Z"fixture-6d61029f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06722024-01-01T00:00:00.000Z"fixture-6d6102a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06732024-01-01T00:00:00.000Z"fixture-6d6102a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06742024-01-01T00:00:00.000Z"fixture-6d6102a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06752024-01-01T00:00:00.000Z"fixture-6d6102a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06762024-01-01T00:00:00.000Z"fixture-6d6102a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06772024-01-01T00:00:00.000Z"fixture-6d6102a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06782024-01-01T00:00:00.000Z"fixture-6d6102a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06792024-01-01T00:00:00.000Z"fixture-6d6102a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06802024-01-01T00:00:00.000Z"fixture-6d6102a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06812024-01-01T00:00:00.000Z"fixture-6d6102a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06822024-01-01T00:00:00.000Z"fixture-6d6102aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06832024-01-01T00:00:00.000Z"fixture-6d6102ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06842024-01-01T00:00:00.000Z"fixture-6d6102ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06852024-01-01T00:00:00.000Z"fixture-6d6102ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06862024-01-01T00:00:00.000Z"fixture-6d6102ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06872024-01-01T00:00:00.000Z"fixture-6d6102af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06882024-01-01T00:00:00.000Z"fixture-6d6102b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06892024-01-01T00:00:00.000Z"fixture-6d6102b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06902024-01-01T00:00:00.000Z"fixture-6d6102b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06912024-01-01T00:00:00.000Z"fixture-6d6102b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06922024-01-01T00:00:00.000Z"fixture-6d6102b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06932024-01-01T00:00:00.000Z"fixture-6d6102b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06942024-01-01T00:00:00.000Z"fixture-6d6102b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06952024-01-01T00:00:00.000Z"fixture-6d6102b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06962024-01-01T00:00:00.000Z"fixture-6d6102b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06972024-01-01T00:00:00.000Z"fixture-6d6102b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06982024-01-01T00:00:00.000Z"fixture-6d6102ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06992024-01-01T00:00:00.000Z"fixture-6d6102bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07002024-01-01T00:00:00.000Z"fixture-6d6102bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07012024-01-01T00:00:00.000Z"fixture-6d6102bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07022024-01-01T00:00:00.000Z"fixture-6d6102be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07032024-01-01T00:00:00.000Z"fixture-6d6102bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07042024-01-01T00:00:00.000Z"fixture-6d6102c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07052024-01-01T00:00:00.000Z"fixture-6d6102c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07062024-01-01T00:00:00.000Z"fixture-6d6102c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07072024-01-01T00:00:00.000Z"fixture-6d6102c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07082024-01-01T00:00:00.000Z"fixture-6d6102c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07092024-01-01T00:00:00.000Z"fixture-6d6102c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07102024-01-01T00:00:00.000Z"fixture-6d6102c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07112024-01-01T00:00:00.000Z"fixture-6d6102c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07122024-01-01T00:00:00.000Z"fixture-6d6102c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07132024-01-01T00:00:00.000Z"fixture-6d6102c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07142024-01-01T00:00:00.000Z"fixture-6d6102ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07152024-01-01T00:00:00.000Z"fixture-6d6102cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07162024-01-01T00:00:00.000Z"fixture-6d6102cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07172024-01-01T00:00:00.000Z"fixture-6d6102cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07182024-01-01T00:00:00.000Z"fixture-6d6102ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07192024-01-01T00:00:00.000Z"fixture-6d6102cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07202024-01-01T00:00:00.000Z"fixture-6d6102d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07212024-01-01T00:00:00.000Z"fixture-6d6102d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07222024-01-01T00:00:00.000Z"fixture-6d6102d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07232024-01-01T00:00:00.000Z"fixture-6d6102d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07242024-01-01T00:00:00.000Z"fixture-6d6102d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07252024-01-01T00:00:00.000Z"fixture-6d6102d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07262024-01-01T00:00:00.000Z"fixture-6d6102d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07272024-01-01T00:00:00.000Z"fixture-6d6102d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07282024-01-01T00:00:00.000Z"fixture-6d6102d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07292024-01-01T00:00:00.000Z"fixture-6d6102d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07302024-01-01T00:00:00.000Z"fixture-6d6102da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07312024-01-01T00:00:00.000Z"fixture-6d6102db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07322024-01-01T00:00:00.000Z"fixture-6d6102dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07332024-01-01T00:00:00.000Z"fixture-6d6102dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07342024-01-01T00:00:00.000Z"fixture-6d6102de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07352024-01-01T00:00:00.000Z"fixture-6d6102df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07362024-01-01T00:00:00.000Z"fixture-6d6102e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07372024-01-01T00:00:00.000Z"fixture-6d6102e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07382024-01-01T00:00:00.000Z"fixture-6d6102e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07392024-01-01T00:00:00.000Z"fixture-6d6102e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07402024-01-01T00:00:00.000Z"fixture-6d6102e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07412024-01-01T00:00:00.000Z"fixture-6d6102e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07422024-01-01T00:00:00.000Z"fixture-6d6102e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07432024-01-01T00:00:00.000Z"fixture-6d6102e7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07442024-01-01T00:00:00.000Z"fixture-6d6102e8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07452024-01-01T00:00:00.000Z"fixture-6d6102e9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07462024-01-01T00:00:00.000Z"fixture-6d6102ea"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07472024-01-01T00:00:00.000Z"fixture-6d6102eb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07482024-01-01T00:00:00.000Z"fixture-6d6102ec"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07492024-01-01T00:00:00.000Z"fixture-6d6102ed"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07502024-01-01T00:00:00.000Z"fixture-6d6102ee"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07512024-01-01T00:00:00.000Z"fixture-6d6102ef"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07522024-01-01T00:00:00.000Z"fixture-6d6102f0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07532024-01-01T00:00:00.000Z"fixture-6d6102f1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07542024-01-01T00:00:00.000Z"fixture-6d6102f2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07552024-01-01T00:00:00.000Z"fixture-6d6102f3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07562024-01-01T00:00:00.000Z"fixture-6d6102f4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07572024-01-01T00:00:00.000Z"fixture-6d6102f5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07582024-01-01T00:00:00.000Z"fixture-6d6102f6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07592024-01-01T00:00:00.000Z"fixture-6d6102f7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07602024-01-01T00:00:00.000Z"fixture-6d6102f8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07612024-01-01T00:00:00.000Z"fixture-6d6102f9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07622024-01-01T00:00:00.000Z"fixture-6d6102fa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07632024-01-01T00:00:00.000Z"fixture-6d6102fb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07642024-01-01T00:00:00.000Z"fixture-6d6102fc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07652024-01-01T00:00:00.000Z"fixture-6d6102fd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07662024-01-01T00:00:00.000Z"fixture-6d6102fe"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07672024-01-01T00:00:00.000Z"fixture-6d6102ff"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07682024-01-01T00:00:00.000Z"fixture-6d610300"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07692024-01-01T00:00:00.000Z"fixture-6d610301"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07702024-01-01T00:00:00.000Z"fixture-6d610302"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07712024-01-01T00:00:00.000Z"fixture-6d610303"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07722024-01-01T00:00:00.000Z"fixture-6d610304"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07732024-01-01T00:00:00.000Z"fixture-6d610305"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07742024-01-01T00:00:00.000Z"fixture-6d610306"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07752024-01-01T00:00:00.000Z"fixture-6d610307"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07762024-01-01T00:00:00.000Z"fixture-6d610308"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07772024-01-01T00:00:00.000Z"fixture-6d610309"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07782024-01-01T00:00:00.000Z"fixture-6d61030a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07792024-01-01T00:00:00.000Z"fixture-6d61030b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07802024-01-01T00:00:00.000Z"fixture-6d61030c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07812024-01-01T00:00:00.000Z"fixture-6d61030d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07822024-01-01T00:00:00.000Z"fixture-6d61030e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07832024-01-01T00:00:00.000Z"fixture-6d61030f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07842024-01-01T00:00:00.000Z"fixture-6d610310"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07852024-01-01T00:00:00.000Z"fixture-6d610311"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07862024-01-01T00:00:00.000Z"fixture-6d610312"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07872024-01-01T00:00:00.000Z"fixture-6d610313"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07882024-01-01T00:00:00.000Z"fixture-6d610314"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07892024-01-01T00:00:00.000Z"fixture-6d610315"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07902024-01-01T00:00:00.000Z"fixture-6d610316"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07912024-01-01T00:00:00.000Z"fixture-6d610317"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07922024-01-01T00:00:00.000Z"fixture-6d610318"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07932024-01-01T00:00:00.000Z"fixture-6d610319"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07942024-01-01T00:00:00.000Z"fixture-6d61031a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07952024-01-01T00:00:00.000Z"fixture-6d61031b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07962024-01-01T00:00:00.000Z"fixture-6d61031c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07972024-01-01T00:00:00.000Z"fixture-6d61031d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07982024-01-01T00:00:00.000Z"fixture-6d61031e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07992024-01-01T00:00:00.000Z"fixture-6d61031f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08002024-01-01T00:00:00.000Z"fixture-6d610320"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08012024-01-01T00:00:00.000Z"fixture-6d610321"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08022024-01-01T00:00:00.000Z"fixture-6d610322"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08032024-01-01T00:00:00.000Z"fixture-6d610323"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08042024-01-01T00:00:00.000Z"fixture-6d610324"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08052024-01-01T00:00:00.000Z"fixture-6d610325"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08062024-01-01T00:00:00.000Z"fixture-6d610326"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08072024-01-01T00:00:00.000Z"fixture-6d610327"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08082024-01-01T00:00:00.000Z"fixture-6d610328"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08092024-01-01T00:00:00.000Z"fixture-6d610329"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08102024-01-01T00:00:00.000Z"fixture-6d61032a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08112024-01-01T00:00:00.000Z"fixture-6d61032b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08122024-01-01T00:00:00.000Z"fixture-6d61032c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08132024-01-01T00:00:00.000Z"fixture-6d61032d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08142024-01-01T00:00:00.000Z"fixture-6d61032e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08152024-01-01T00:00:00.000Z"fixture-6d61032f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08162024-01-01T00:00:00.000Z"fixture-6d610330"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08172024-01-01T00:00:00.000Z"fixture-6d610331"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08182024-01-01T00:00:00.000Z"fixture-6d610332"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08192024-01-01T00:00:00.000Z"fixture-6d610333"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08202024-01-01T00:00:00.000Z"fixture-6d610334"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08212024-01-01T00:00:00.000Z"fixture-6d610335"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08222024-01-01T00:00:00.000Z"fixture-6d610336"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08232024-01-01T00:00:00.000Z"fixture-6d610337"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08242024-01-01T00:00:00.000Z"fixture-6d610338"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08252024-01-01T00:00:00.000Z"fixture-6d610339"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08262024-01-01T00:00:00.000Z"fixture-6d61033a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08272024-01-01T00:00:00.000Z"fixture-6d61033b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08282024-01-01T00:00:00.000Z"fixture-6d61033c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08292024-01-01T00:00:00.000Z"fixture-6d61033d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08302024-01-01T00:00:00.000Z"fixture-6d61033e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08312024-01-01T00:00:00.000Z"fixture-6d61033f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08322024-01-01T00:00:00.000Z"fixture-6d610340"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08332024-01-01T00:00:00.000Z"fixture-6d610341"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08342024-01-01T00:00:00.000Z"fixture-6d610342"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08352024-01-01T00:00:00.000Z"fixture-6d610343"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08362024-01-01T00:00:00.000Z"fixture-6d610344"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08372024-01-01T00:00:00.000Z"fixture-6d610345"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08382024-01-01T00:00:00.000Z"fixture-6d610346"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08392024-01-01T00:00:00.000Z"fixture-6d610347"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08402024-01-01T00:00:00.000Z"fixture-6d610348"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08412024-01-01T00:00:00.000Z"fixture-6d610349"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08422024-01-01T00:00:00.000Z"fixture-6d61034a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08432024-01-01T00:00:00.000Z"fixture-6d61034b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08442024-01-01T00:00:00.000Z"fixture-6d61034c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08452024-01-01T00:00:00.000Z"fixture-6d61034d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08462024-01-01T00:00:00.000Z"fixture-6d61034e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08472024-01-01T00:00:00.000Z"fixture-6d61034f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08482024-01-01T00:00:00.000Z"fixture-6d610350"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08492024-01-01T00:00:00.000Z"fixture-6d610351"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08502024-01-01T00:00:00.000Z"fixture-6d610352"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08512024-01-01T00:00:00.000Z"fixture-6d610353"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08522024-01-01T00:00:00.000Z"fixture-6d610354"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08532024-01-01T00:00:00.000Z"fixture-6d610355"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08542024-01-01T00:00:00.000Z"fixture-6d610356"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08552024-01-01T00:00:00.000Z"fixture-6d610357"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08562024-01-01T00:00:00.000Z"fixture-6d610358"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08572024-01-01T00:00:00.000Z"fixture-6d610359"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08582024-01-01T00:00:00.000Z"fixture-6d61035a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08592024-01-01T00:00:00.000Z"fixture-6d61035b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08602024-01-01T00:00:00.000Z"fixture-6d61035c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08612024-01-01T00:00:00.000Z"fixture-6d61035d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08622024-01-01T00:00:00.000Z"fixture-6d61035e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08632024-01-01T00:00:00.000Z"fixture-6d61035f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08642024-01-01T00:00:00.000Z"fixture-6d610360"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08652024-01-01T00:00:00.000Z"fixture-6d610361"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08662024-01-01T00:00:00.000Z"fixture-6d610362"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08672024-01-01T00:00:00.000Z"fixture-6d610363"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08682024-01-01T00:00:00.000Z"fixture-6d610364"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08692024-01-01T00:00:00.000Z"fixture-6d610365"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08702024-01-01T00:00:00.000Z"fixture-6d610366"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08712024-01-01T00:00:00.000Z"fixture-6d610367"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08722024-01-01T00:00:00.000Z"fixture-6d610368"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08732024-01-01T00:00:00.000Z"fixture-6d610369"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08742024-01-01T00:00:00.000Z"fixture-6d61036a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08752024-01-01T00:00:00.000Z"fixture-6d61036b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08762024-01-01T00:00:00.000Z"fixture-6d61036c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08772024-01-01T00:00:00.000Z"fixture-6d61036d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08782024-01-01T00:00:00.000Z"fixture-6d61036e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08792024-01-01T00:00:00.000Z"fixture-6d61036f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08802024-01-01T00:00:00.000Z"fixture-6d610370"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08812024-01-01T00:00:00.000Z"fixture-6d610371"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08822024-01-01T00:00:00.000Z"fixture-6d610372"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08832024-01-01T00:00:00.000Z"fixture-6d610373"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08842024-01-01T00:00:00.000Z"fixture-6d610374"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08852024-01-01T00:00:00.000Z"fixture-6d610375"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08862024-01-01T00:00:00.000Z"fixture-6d610376"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08872024-01-01T00:00:00.000Z"fixture-6d610377"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08882024-01-01T00:00:00.000Z"fixture-6d610378"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08892024-01-01T00:00:00.000Z"fixture-6d610379"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08902024-01-01T00:00:00.000Z"fixture-6d61037a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08912024-01-01T00:00:00.000Z"fixture-6d61037b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08922024-01-01T00:00:00.000Z"fixture-6d61037c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08932024-01-01T00:00:00.000Z"fixture-6d61037d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08942024-01-01T00:00:00.000Z"fixture-6d61037e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08952024-01-01T00:00:00.000Z"fixture-6d61037f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08962024-01-01T00:00:00.000Z"fixture-6d610380"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08972024-01-01T00:00:00.000Z"fixture-6d610381"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08982024-01-01T00:00:00.000Z"fixture-6d610382"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08992024-01-01T00:00:00.000Z"fixture-6d610383"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09002024-01-01T00:00:00.000Z"fixture-6d610384"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09012024-01-01T00:00:00.000Z"fixture-6d610385"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09022024-01-01T00:00:00.000Z"fixture-6d610386"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09032024-01-01T00:00:00.000Z"fixture-6d610387"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09042024-01-01T00:00:00.000Z"fixture-6d610388"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09052024-01-01T00:00:00.000Z"fixture-6d610389"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09062024-01-01T00:00:00.000Z"fixture-6d61038a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09072024-01-01T00:00:00.000Z"fixture-6d61038b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09082024-01-01T00:00:00.000Z"fixture-6d61038c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09092024-01-01T00:00:00.000Z"fixture-6d61038d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09102024-01-01T00:00:00.000Z"fixture-6d61038e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09112024-01-01T00:00:00.000Z"fixture-6d61038f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09122024-01-01T00:00:00.000Z"fixture-6d610390"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09132024-01-01T00:00:00.000Z"fixture-6d610391"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09142024-01-01T00:00:00.000Z"fixture-6d610392"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09152024-01-01T00:00:00.000Z"fixture-6d610393"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09162024-01-01T00:00:00.000Z"fixture-6d610394"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09172024-01-01T00:00:00.000Z"fixture-6d610395"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09182024-01-01T00:00:00.000Z"fixture-6d610396"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09192024-01-01T00:00:00.000Z"fixture-6d610397"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09202024-01-01T00:00:00.000Z"fixture-6d610398"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09212024-01-01T00:00:00.000Z"fixture-6d610399"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09222024-01-01T00:00:00.000Z"fixture-6d61039a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09232024-01-01T00:00:00.000Z"fixture-6d61039b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09242024-01-01T00:00:00.000Z"fixture-6d61039c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09252024-01-01T00:00:00.000Z"fixture-6d61039d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09262024-01-01T00:00:00.000Z"fixture-6d61039e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09272024-01-01T00:00:00.000Z"fixture-6d61039f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09282024-01-01T00:00:00.000Z"fixture-6d6103a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09292024-01-01T00:00:00.000Z"fixture-6d6103a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09302024-01-01T00:00:00.000Z"fixture-6d6103a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09312024-01-01T00:00:00.000Z"fixture-6d6103a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09322024-01-01T00:00:00.000Z"fixture-6d6103a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09332024-01-01T00:00:00.000Z"fixture-6d6103a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09342024-01-01T00:00:00.000Z"fixture-6d6103a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09352024-01-01T00:00:00.000Z"fixture-6d6103a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09362024-01-01T00:00:00.000Z"fixture-6d6103a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09372024-01-01T00:00:00.000Z"fixture-6d6103a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09382024-01-01T00:00:00.000Z"fixture-6d6103aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09392024-01-01T00:00:00.000Z"fixture-6d6103ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09402024-01-01T00:00:00.000Z"fixture-6d6103ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09412024-01-01T00:00:00.000Z"fixture-6d6103ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09422024-01-01T00:00:00.000Z"fixture-6d6103ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09432024-01-01T00:00:00.000Z"fixture-6d6103af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09442024-01-01T00:00:00.000Z"fixture-6d6103b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09452024-01-01T00:00:00.000Z"fixture-6d6103b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09462024-01-01T00:00:00.000Z"fixture-6d6103b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09472024-01-01T00:00:00.000Z"fixture-6d6103b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09482024-01-01T00:00:00.000Z"fixture-6d6103b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09492024-01-01T00:00:00.000Z"fixture-6d6103b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09502024-01-01T00:00:00.000Z"fixture-6d6103b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09512024-01-01T00:00:00.000Z"fixture-6d6103b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09522024-01-01T00:00:00.000Z"fixture-6d6103b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09532024-01-01T00:00:00.000Z"fixture-6d6103b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09542024-01-01T00:00:00.000Z"fixture-6d6103ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09552024-01-01T00:00:00.000Z"fixture-6d6103bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09562024-01-01T00:00:00.000Z"fixture-6d6103bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09572024-01-01T00:00:00.000Z"fixture-6d6103bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09582024-01-01T00:00:00.000Z"fixture-6d6103be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09592024-01-01T00:00:00.000Z"fixture-6d6103bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09602024-01-01T00:00:00.000Z"fixture-6d6103c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09612024-01-01T00:00:00.000Z"fixture-6d6103c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09622024-01-01T00:00:00.000Z"fixture-6d6103c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09632024-01-01T00:00:00.000Z"fixture-6d6103c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09642024-01-01T00:00:00.000Z"fixture-6d6103c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09652024-01-01T00:00:00.000Z"fixture-6d6103c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09662024-01-01T00:00:00.000Z"fixture-6d6103c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09672024-01-01T00:00:00.000Z"fixture-6d6103c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09682024-01-01T00:00:00.000Z"fixture-6d6103c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09692024-01-01T00:00:00.000Z"fixture-6d6103c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09702024-01-01T00:00:00.000Z"fixture-6d6103ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09712024-01-01T00:00:00.000Z"fixture-6d6103cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09722024-01-01T00:00:00.000Z"fixture-6d6103cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09732024-01-01T00:00:00.000Z"fixture-6d6103cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09742024-01-01T00:00:00.000Z"fixture-6d6103ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09752024-01-01T00:00:00.000Z"fixture-6d6103cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09762024-01-01T00:00:00.000Z"fixture-6d6103d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09772024-01-01T00:00:00.000Z"fixture-6d6103d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09782024-01-01T00:00:00.000Z"fixture-6d6103d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09792024-01-01T00:00:00.000Z"fixture-6d6103d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09802024-01-01T00:00:00.000Z"fixture-6d6103d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09812024-01-01T00:00:00.000Z"fixture-6d6103d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09822024-01-01T00:00:00.000Z"fixture-6d6103d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09832024-01-01T00:00:00.000Z"fixture-6d6103d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09842024-01-01T00:00:00.000Z"fixture-6d6103d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09852024-01-01T00:00:00.000Z"fixture-6d6103d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09862024-01-01T00:00:00.000Z"fixture-6d6103da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09872024-01-01T00:00:00.000Z"fixture-6d6103db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09882024-01-01T00:00:00.000Z"fixture-6d6103dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09892024-01-01T00:00:00.000Z"fixture-6d6103dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09902024-01-01T00:00:00.000Z"fixture-6d6103de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09912024-01-01T00:00:00.000Z"fixture-6d6103df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09922024-01-01T00:00:00.000Z"fixture-6d6103e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09932024-01-01T00:00:00.000Z"fixture-6d6103e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09942024-01-01T00:00:00.000Z"fixture-6d6103e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09952024-01-01T00:00:00.000Z"fixture-6d6103e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09962024-01-01T00:00:00.000Z"fixture-6d6103e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09972024-01-01T00:00:00.000Z"fixture-6d6103e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09982024-01-01T00:00:00.000Z"fixture-6d6103e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09992024-01-01T00:00:00.000Z"fixture-6d6103e7"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 4
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
},
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MjM0NQ=="
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-range-open",
- "profile": "s3",
- "lane": "core",
- "purpose": "get range open",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
- ],
- "call": {
- "key": "object",
- "op": "get",
- "range": {
- "start": 3
- }
- },
- "exchanges": [
{
"alternatives": [
{
@@ -86630,7 +124499,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/fixture"
}
},
{
@@ -86642,44 +124511,48 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=3-"
+ "value": "2"
}
},
{
- "at": "/headers/content-type",
- "optional": true,
+ "at": "/query/prefix",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
+ "is": "equal",
+ "value": "object-tests/many/"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/3a4e1000="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 3-4/5",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "bG8="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000falseobject-tests/many/10002024-01-01T00:00:00.000Z"fixture-6d6103e8"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
},
{
@@ -86697,7 +124570,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/fixture"
}
},
{
@@ -86709,44 +124582,56 @@
}
},
{
- "at": "/headers/content-type",
- "optional": true,
+ "at": "/query/list-type",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
+ "is": "equal",
+ "value": "2"
}
},
{
- "at": "/headers/range",
+ "at": "/query/prefix",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=3-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "object-tests/many/"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/3a4e1000="
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 3-4/5",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "bG8="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000urlfalseobject-tests/many/10002024-01-01T00:00:00.000Z"fixture-6d6103e8"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
}
]
@@ -86762,27 +124647,1030 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/keys",
"optional": false,
"rule": {
"is": "equal",
- "value": "bG8="
+ "value": [
+ "object-tests/many/0000",
+ "object-tests/many/0001",
+ "object-tests/many/0002",
+ "object-tests/many/0003",
+ "object-tests/many/0004",
+ "object-tests/many/0005",
+ "object-tests/many/0006",
+ "object-tests/many/0007",
+ "object-tests/many/0008",
+ "object-tests/many/0009",
+ "object-tests/many/0010",
+ "object-tests/many/0011",
+ "object-tests/many/0012",
+ "object-tests/many/0013",
+ "object-tests/many/0014",
+ "object-tests/many/0015",
+ "object-tests/many/0016",
+ "object-tests/many/0017",
+ "object-tests/many/0018",
+ "object-tests/many/0019",
+ "object-tests/many/0020",
+ "object-tests/many/0021",
+ "object-tests/many/0022",
+ "object-tests/many/0023",
+ "object-tests/many/0024",
+ "object-tests/many/0025",
+ "object-tests/many/0026",
+ "object-tests/many/0027",
+ "object-tests/many/0028",
+ "object-tests/many/0029",
+ "object-tests/many/0030",
+ "object-tests/many/0031",
+ "object-tests/many/0032",
+ "object-tests/many/0033",
+ "object-tests/many/0034",
+ "object-tests/many/0035",
+ "object-tests/many/0036",
+ "object-tests/many/0037",
+ "object-tests/many/0038",
+ "object-tests/many/0039",
+ "object-tests/many/0040",
+ "object-tests/many/0041",
+ "object-tests/many/0042",
+ "object-tests/many/0043",
+ "object-tests/many/0044",
+ "object-tests/many/0045",
+ "object-tests/many/0046",
+ "object-tests/many/0047",
+ "object-tests/many/0048",
+ "object-tests/many/0049",
+ "object-tests/many/0050",
+ "object-tests/many/0051",
+ "object-tests/many/0052",
+ "object-tests/many/0053",
+ "object-tests/many/0054",
+ "object-tests/many/0055",
+ "object-tests/many/0056",
+ "object-tests/many/0057",
+ "object-tests/many/0058",
+ "object-tests/many/0059",
+ "object-tests/many/0060",
+ "object-tests/many/0061",
+ "object-tests/many/0062",
+ "object-tests/many/0063",
+ "object-tests/many/0064",
+ "object-tests/many/0065",
+ "object-tests/many/0066",
+ "object-tests/many/0067",
+ "object-tests/many/0068",
+ "object-tests/many/0069",
+ "object-tests/many/0070",
+ "object-tests/many/0071",
+ "object-tests/many/0072",
+ "object-tests/many/0073",
+ "object-tests/many/0074",
+ "object-tests/many/0075",
+ "object-tests/many/0076",
+ "object-tests/many/0077",
+ "object-tests/many/0078",
+ "object-tests/many/0079",
+ "object-tests/many/0080",
+ "object-tests/many/0081",
+ "object-tests/many/0082",
+ "object-tests/many/0083",
+ "object-tests/many/0084",
+ "object-tests/many/0085",
+ "object-tests/many/0086",
+ "object-tests/many/0087",
+ "object-tests/many/0088",
+ "object-tests/many/0089",
+ "object-tests/many/0090",
+ "object-tests/many/0091",
+ "object-tests/many/0092",
+ "object-tests/many/0093",
+ "object-tests/many/0094",
+ "object-tests/many/0095",
+ "object-tests/many/0096",
+ "object-tests/many/0097",
+ "object-tests/many/0098",
+ "object-tests/many/0099",
+ "object-tests/many/0100",
+ "object-tests/many/0101",
+ "object-tests/many/0102",
+ "object-tests/many/0103",
+ "object-tests/many/0104",
+ "object-tests/many/0105",
+ "object-tests/many/0106",
+ "object-tests/many/0107",
+ "object-tests/many/0108",
+ "object-tests/many/0109",
+ "object-tests/many/0110",
+ "object-tests/many/0111",
+ "object-tests/many/0112",
+ "object-tests/many/0113",
+ "object-tests/many/0114",
+ "object-tests/many/0115",
+ "object-tests/many/0116",
+ "object-tests/many/0117",
+ "object-tests/many/0118",
+ "object-tests/many/0119",
+ "object-tests/many/0120",
+ "object-tests/many/0121",
+ "object-tests/many/0122",
+ "object-tests/many/0123",
+ "object-tests/many/0124",
+ "object-tests/many/0125",
+ "object-tests/many/0126",
+ "object-tests/many/0127",
+ "object-tests/many/0128",
+ "object-tests/many/0129",
+ "object-tests/many/0130",
+ "object-tests/many/0131",
+ "object-tests/many/0132",
+ "object-tests/many/0133",
+ "object-tests/many/0134",
+ "object-tests/many/0135",
+ "object-tests/many/0136",
+ "object-tests/many/0137",
+ "object-tests/many/0138",
+ "object-tests/many/0139",
+ "object-tests/many/0140",
+ "object-tests/many/0141",
+ "object-tests/many/0142",
+ "object-tests/many/0143",
+ "object-tests/many/0144",
+ "object-tests/many/0145",
+ "object-tests/many/0146",
+ "object-tests/many/0147",
+ "object-tests/many/0148",
+ "object-tests/many/0149",
+ "object-tests/many/0150",
+ "object-tests/many/0151",
+ "object-tests/many/0152",
+ "object-tests/many/0153",
+ "object-tests/many/0154",
+ "object-tests/many/0155",
+ "object-tests/many/0156",
+ "object-tests/many/0157",
+ "object-tests/many/0158",
+ "object-tests/many/0159",
+ "object-tests/many/0160",
+ "object-tests/many/0161",
+ "object-tests/many/0162",
+ "object-tests/many/0163",
+ "object-tests/many/0164",
+ "object-tests/many/0165",
+ "object-tests/many/0166",
+ "object-tests/many/0167",
+ "object-tests/many/0168",
+ "object-tests/many/0169",
+ "object-tests/many/0170",
+ "object-tests/many/0171",
+ "object-tests/many/0172",
+ "object-tests/many/0173",
+ "object-tests/many/0174",
+ "object-tests/many/0175",
+ "object-tests/many/0176",
+ "object-tests/many/0177",
+ "object-tests/many/0178",
+ "object-tests/many/0179",
+ "object-tests/many/0180",
+ "object-tests/many/0181",
+ "object-tests/many/0182",
+ "object-tests/many/0183",
+ "object-tests/many/0184",
+ "object-tests/many/0185",
+ "object-tests/many/0186",
+ "object-tests/many/0187",
+ "object-tests/many/0188",
+ "object-tests/many/0189",
+ "object-tests/many/0190",
+ "object-tests/many/0191",
+ "object-tests/many/0192",
+ "object-tests/many/0193",
+ "object-tests/many/0194",
+ "object-tests/many/0195",
+ "object-tests/many/0196",
+ "object-tests/many/0197",
+ "object-tests/many/0198",
+ "object-tests/many/0199",
+ "object-tests/many/0200",
+ "object-tests/many/0201",
+ "object-tests/many/0202",
+ "object-tests/many/0203",
+ "object-tests/many/0204",
+ "object-tests/many/0205",
+ "object-tests/many/0206",
+ "object-tests/many/0207",
+ "object-tests/many/0208",
+ "object-tests/many/0209",
+ "object-tests/many/0210",
+ "object-tests/many/0211",
+ "object-tests/many/0212",
+ "object-tests/many/0213",
+ "object-tests/many/0214",
+ "object-tests/many/0215",
+ "object-tests/many/0216",
+ "object-tests/many/0217",
+ "object-tests/many/0218",
+ "object-tests/many/0219",
+ "object-tests/many/0220",
+ "object-tests/many/0221",
+ "object-tests/many/0222",
+ "object-tests/many/0223",
+ "object-tests/many/0224",
+ "object-tests/many/0225",
+ "object-tests/many/0226",
+ "object-tests/many/0227",
+ "object-tests/many/0228",
+ "object-tests/many/0229",
+ "object-tests/many/0230",
+ "object-tests/many/0231",
+ "object-tests/many/0232",
+ "object-tests/many/0233",
+ "object-tests/many/0234",
+ "object-tests/many/0235",
+ "object-tests/many/0236",
+ "object-tests/many/0237",
+ "object-tests/many/0238",
+ "object-tests/many/0239",
+ "object-tests/many/0240",
+ "object-tests/many/0241",
+ "object-tests/many/0242",
+ "object-tests/many/0243",
+ "object-tests/many/0244",
+ "object-tests/many/0245",
+ "object-tests/many/0246",
+ "object-tests/many/0247",
+ "object-tests/many/0248",
+ "object-tests/many/0249",
+ "object-tests/many/0250",
+ "object-tests/many/0251",
+ "object-tests/many/0252",
+ "object-tests/many/0253",
+ "object-tests/many/0254",
+ "object-tests/many/0255",
+ "object-tests/many/0256",
+ "object-tests/many/0257",
+ "object-tests/many/0258",
+ "object-tests/many/0259",
+ "object-tests/many/0260",
+ "object-tests/many/0261",
+ "object-tests/many/0262",
+ "object-tests/many/0263",
+ "object-tests/many/0264",
+ "object-tests/many/0265",
+ "object-tests/many/0266",
+ "object-tests/many/0267",
+ "object-tests/many/0268",
+ "object-tests/many/0269",
+ "object-tests/many/0270",
+ "object-tests/many/0271",
+ "object-tests/many/0272",
+ "object-tests/many/0273",
+ "object-tests/many/0274",
+ "object-tests/many/0275",
+ "object-tests/many/0276",
+ "object-tests/many/0277",
+ "object-tests/many/0278",
+ "object-tests/many/0279",
+ "object-tests/many/0280",
+ "object-tests/many/0281",
+ "object-tests/many/0282",
+ "object-tests/many/0283",
+ "object-tests/many/0284",
+ "object-tests/many/0285",
+ "object-tests/many/0286",
+ "object-tests/many/0287",
+ "object-tests/many/0288",
+ "object-tests/many/0289",
+ "object-tests/many/0290",
+ "object-tests/many/0291",
+ "object-tests/many/0292",
+ "object-tests/many/0293",
+ "object-tests/many/0294",
+ "object-tests/many/0295",
+ "object-tests/many/0296",
+ "object-tests/many/0297",
+ "object-tests/many/0298",
+ "object-tests/many/0299",
+ "object-tests/many/0300",
+ "object-tests/many/0301",
+ "object-tests/many/0302",
+ "object-tests/many/0303",
+ "object-tests/many/0304",
+ "object-tests/many/0305",
+ "object-tests/many/0306",
+ "object-tests/many/0307",
+ "object-tests/many/0308",
+ "object-tests/many/0309",
+ "object-tests/many/0310",
+ "object-tests/many/0311",
+ "object-tests/many/0312",
+ "object-tests/many/0313",
+ "object-tests/many/0314",
+ "object-tests/many/0315",
+ "object-tests/many/0316",
+ "object-tests/many/0317",
+ "object-tests/many/0318",
+ "object-tests/many/0319",
+ "object-tests/many/0320",
+ "object-tests/many/0321",
+ "object-tests/many/0322",
+ "object-tests/many/0323",
+ "object-tests/many/0324",
+ "object-tests/many/0325",
+ "object-tests/many/0326",
+ "object-tests/many/0327",
+ "object-tests/many/0328",
+ "object-tests/many/0329",
+ "object-tests/many/0330",
+ "object-tests/many/0331",
+ "object-tests/many/0332",
+ "object-tests/many/0333",
+ "object-tests/many/0334",
+ "object-tests/many/0335",
+ "object-tests/many/0336",
+ "object-tests/many/0337",
+ "object-tests/many/0338",
+ "object-tests/many/0339",
+ "object-tests/many/0340",
+ "object-tests/many/0341",
+ "object-tests/many/0342",
+ "object-tests/many/0343",
+ "object-tests/many/0344",
+ "object-tests/many/0345",
+ "object-tests/many/0346",
+ "object-tests/many/0347",
+ "object-tests/many/0348",
+ "object-tests/many/0349",
+ "object-tests/many/0350",
+ "object-tests/many/0351",
+ "object-tests/many/0352",
+ "object-tests/many/0353",
+ "object-tests/many/0354",
+ "object-tests/many/0355",
+ "object-tests/many/0356",
+ "object-tests/many/0357",
+ "object-tests/many/0358",
+ "object-tests/many/0359",
+ "object-tests/many/0360",
+ "object-tests/many/0361",
+ "object-tests/many/0362",
+ "object-tests/many/0363",
+ "object-tests/many/0364",
+ "object-tests/many/0365",
+ "object-tests/many/0366",
+ "object-tests/many/0367",
+ "object-tests/many/0368",
+ "object-tests/many/0369",
+ "object-tests/many/0370",
+ "object-tests/many/0371",
+ "object-tests/many/0372",
+ "object-tests/many/0373",
+ "object-tests/many/0374",
+ "object-tests/many/0375",
+ "object-tests/many/0376",
+ "object-tests/many/0377",
+ "object-tests/many/0378",
+ "object-tests/many/0379",
+ "object-tests/many/0380",
+ "object-tests/many/0381",
+ "object-tests/many/0382",
+ "object-tests/many/0383",
+ "object-tests/many/0384",
+ "object-tests/many/0385",
+ "object-tests/many/0386",
+ "object-tests/many/0387",
+ "object-tests/many/0388",
+ "object-tests/many/0389",
+ "object-tests/many/0390",
+ "object-tests/many/0391",
+ "object-tests/many/0392",
+ "object-tests/many/0393",
+ "object-tests/many/0394",
+ "object-tests/many/0395",
+ "object-tests/many/0396",
+ "object-tests/many/0397",
+ "object-tests/many/0398",
+ "object-tests/many/0399",
+ "object-tests/many/0400",
+ "object-tests/many/0401",
+ "object-tests/many/0402",
+ "object-tests/many/0403",
+ "object-tests/many/0404",
+ "object-tests/many/0405",
+ "object-tests/many/0406",
+ "object-tests/many/0407",
+ "object-tests/many/0408",
+ "object-tests/many/0409",
+ "object-tests/many/0410",
+ "object-tests/many/0411",
+ "object-tests/many/0412",
+ "object-tests/many/0413",
+ "object-tests/many/0414",
+ "object-tests/many/0415",
+ "object-tests/many/0416",
+ "object-tests/many/0417",
+ "object-tests/many/0418",
+ "object-tests/many/0419",
+ "object-tests/many/0420",
+ "object-tests/many/0421",
+ "object-tests/many/0422",
+ "object-tests/many/0423",
+ "object-tests/many/0424",
+ "object-tests/many/0425",
+ "object-tests/many/0426",
+ "object-tests/many/0427",
+ "object-tests/many/0428",
+ "object-tests/many/0429",
+ "object-tests/many/0430",
+ "object-tests/many/0431",
+ "object-tests/many/0432",
+ "object-tests/many/0433",
+ "object-tests/many/0434",
+ "object-tests/many/0435",
+ "object-tests/many/0436",
+ "object-tests/many/0437",
+ "object-tests/many/0438",
+ "object-tests/many/0439",
+ "object-tests/many/0440",
+ "object-tests/many/0441",
+ "object-tests/many/0442",
+ "object-tests/many/0443",
+ "object-tests/many/0444",
+ "object-tests/many/0445",
+ "object-tests/many/0446",
+ "object-tests/many/0447",
+ "object-tests/many/0448",
+ "object-tests/many/0449",
+ "object-tests/many/0450",
+ "object-tests/many/0451",
+ "object-tests/many/0452",
+ "object-tests/many/0453",
+ "object-tests/many/0454",
+ "object-tests/many/0455",
+ "object-tests/many/0456",
+ "object-tests/many/0457",
+ "object-tests/many/0458",
+ "object-tests/many/0459",
+ "object-tests/many/0460",
+ "object-tests/many/0461",
+ "object-tests/many/0462",
+ "object-tests/many/0463",
+ "object-tests/many/0464",
+ "object-tests/many/0465",
+ "object-tests/many/0466",
+ "object-tests/many/0467",
+ "object-tests/many/0468",
+ "object-tests/many/0469",
+ "object-tests/many/0470",
+ "object-tests/many/0471",
+ "object-tests/many/0472",
+ "object-tests/many/0473",
+ "object-tests/many/0474",
+ "object-tests/many/0475",
+ "object-tests/many/0476",
+ "object-tests/many/0477",
+ "object-tests/many/0478",
+ "object-tests/many/0479",
+ "object-tests/many/0480",
+ "object-tests/many/0481",
+ "object-tests/many/0482",
+ "object-tests/many/0483",
+ "object-tests/many/0484",
+ "object-tests/many/0485",
+ "object-tests/many/0486",
+ "object-tests/many/0487",
+ "object-tests/many/0488",
+ "object-tests/many/0489",
+ "object-tests/many/0490",
+ "object-tests/many/0491",
+ "object-tests/many/0492",
+ "object-tests/many/0493",
+ "object-tests/many/0494",
+ "object-tests/many/0495",
+ "object-tests/many/0496",
+ "object-tests/many/0497",
+ "object-tests/many/0498",
+ "object-tests/many/0499",
+ "object-tests/many/0500",
+ "object-tests/many/0501",
+ "object-tests/many/0502",
+ "object-tests/many/0503",
+ "object-tests/many/0504",
+ "object-tests/many/0505",
+ "object-tests/many/0506",
+ "object-tests/many/0507",
+ "object-tests/many/0508",
+ "object-tests/many/0509",
+ "object-tests/many/0510",
+ "object-tests/many/0511",
+ "object-tests/many/0512",
+ "object-tests/many/0513",
+ "object-tests/many/0514",
+ "object-tests/many/0515",
+ "object-tests/many/0516",
+ "object-tests/many/0517",
+ "object-tests/many/0518",
+ "object-tests/many/0519",
+ "object-tests/many/0520",
+ "object-tests/many/0521",
+ "object-tests/many/0522",
+ "object-tests/many/0523",
+ "object-tests/many/0524",
+ "object-tests/many/0525",
+ "object-tests/many/0526",
+ "object-tests/many/0527",
+ "object-tests/many/0528",
+ "object-tests/many/0529",
+ "object-tests/many/0530",
+ "object-tests/many/0531",
+ "object-tests/many/0532",
+ "object-tests/many/0533",
+ "object-tests/many/0534",
+ "object-tests/many/0535",
+ "object-tests/many/0536",
+ "object-tests/many/0537",
+ "object-tests/many/0538",
+ "object-tests/many/0539",
+ "object-tests/many/0540",
+ "object-tests/many/0541",
+ "object-tests/many/0542",
+ "object-tests/many/0543",
+ "object-tests/many/0544",
+ "object-tests/many/0545",
+ "object-tests/many/0546",
+ "object-tests/many/0547",
+ "object-tests/many/0548",
+ "object-tests/many/0549",
+ "object-tests/many/0550",
+ "object-tests/many/0551",
+ "object-tests/many/0552",
+ "object-tests/many/0553",
+ "object-tests/many/0554",
+ "object-tests/many/0555",
+ "object-tests/many/0556",
+ "object-tests/many/0557",
+ "object-tests/many/0558",
+ "object-tests/many/0559",
+ "object-tests/many/0560",
+ "object-tests/many/0561",
+ "object-tests/many/0562",
+ "object-tests/many/0563",
+ "object-tests/many/0564",
+ "object-tests/many/0565",
+ "object-tests/many/0566",
+ "object-tests/many/0567",
+ "object-tests/many/0568",
+ "object-tests/many/0569",
+ "object-tests/many/0570",
+ "object-tests/many/0571",
+ "object-tests/many/0572",
+ "object-tests/many/0573",
+ "object-tests/many/0574",
+ "object-tests/many/0575",
+ "object-tests/many/0576",
+ "object-tests/many/0577",
+ "object-tests/many/0578",
+ "object-tests/many/0579",
+ "object-tests/many/0580",
+ "object-tests/many/0581",
+ "object-tests/many/0582",
+ "object-tests/many/0583",
+ "object-tests/many/0584",
+ "object-tests/many/0585",
+ "object-tests/many/0586",
+ "object-tests/many/0587",
+ "object-tests/many/0588",
+ "object-tests/many/0589",
+ "object-tests/many/0590",
+ "object-tests/many/0591",
+ "object-tests/many/0592",
+ "object-tests/many/0593",
+ "object-tests/many/0594",
+ "object-tests/many/0595",
+ "object-tests/many/0596",
+ "object-tests/many/0597",
+ "object-tests/many/0598",
+ "object-tests/many/0599",
+ "object-tests/many/0600",
+ "object-tests/many/0601",
+ "object-tests/many/0602",
+ "object-tests/many/0603",
+ "object-tests/many/0604",
+ "object-tests/many/0605",
+ "object-tests/many/0606",
+ "object-tests/many/0607",
+ "object-tests/many/0608",
+ "object-tests/many/0609",
+ "object-tests/many/0610",
+ "object-tests/many/0611",
+ "object-tests/many/0612",
+ "object-tests/many/0613",
+ "object-tests/many/0614",
+ "object-tests/many/0615",
+ "object-tests/many/0616",
+ "object-tests/many/0617",
+ "object-tests/many/0618",
+ "object-tests/many/0619",
+ "object-tests/many/0620",
+ "object-tests/many/0621",
+ "object-tests/many/0622",
+ "object-tests/many/0623",
+ "object-tests/many/0624",
+ "object-tests/many/0625",
+ "object-tests/many/0626",
+ "object-tests/many/0627",
+ "object-tests/many/0628",
+ "object-tests/many/0629",
+ "object-tests/many/0630",
+ "object-tests/many/0631",
+ "object-tests/many/0632",
+ "object-tests/many/0633",
+ "object-tests/many/0634",
+ "object-tests/many/0635",
+ "object-tests/many/0636",
+ "object-tests/many/0637",
+ "object-tests/many/0638",
+ "object-tests/many/0639",
+ "object-tests/many/0640",
+ "object-tests/many/0641",
+ "object-tests/many/0642",
+ "object-tests/many/0643",
+ "object-tests/many/0644",
+ "object-tests/many/0645",
+ "object-tests/many/0646",
+ "object-tests/many/0647",
+ "object-tests/many/0648",
+ "object-tests/many/0649",
+ "object-tests/many/0650",
+ "object-tests/many/0651",
+ "object-tests/many/0652",
+ "object-tests/many/0653",
+ "object-tests/many/0654",
+ "object-tests/many/0655",
+ "object-tests/many/0656",
+ "object-tests/many/0657",
+ "object-tests/many/0658",
+ "object-tests/many/0659",
+ "object-tests/many/0660",
+ "object-tests/many/0661",
+ "object-tests/many/0662",
+ "object-tests/many/0663",
+ "object-tests/many/0664",
+ "object-tests/many/0665",
+ "object-tests/many/0666",
+ "object-tests/many/0667",
+ "object-tests/many/0668",
+ "object-tests/many/0669",
+ "object-tests/many/0670",
+ "object-tests/many/0671",
+ "object-tests/many/0672",
+ "object-tests/many/0673",
+ "object-tests/many/0674",
+ "object-tests/many/0675",
+ "object-tests/many/0676",
+ "object-tests/many/0677",
+ "object-tests/many/0678",
+ "object-tests/many/0679",
+ "object-tests/many/0680",
+ "object-tests/many/0681",
+ "object-tests/many/0682",
+ "object-tests/many/0683",
+ "object-tests/many/0684",
+ "object-tests/many/0685",
+ "object-tests/many/0686",
+ "object-tests/many/0687",
+ "object-tests/many/0688",
+ "object-tests/many/0689",
+ "object-tests/many/0690",
+ "object-tests/many/0691",
+ "object-tests/many/0692",
+ "object-tests/many/0693",
+ "object-tests/many/0694",
+ "object-tests/many/0695",
+ "object-tests/many/0696",
+ "object-tests/many/0697",
+ "object-tests/many/0698",
+ "object-tests/many/0699",
+ "object-tests/many/0700",
+ "object-tests/many/0701",
+ "object-tests/many/0702",
+ "object-tests/many/0703",
+ "object-tests/many/0704",
+ "object-tests/many/0705",
+ "object-tests/many/0706",
+ "object-tests/many/0707",
+ "object-tests/many/0708",
+ "object-tests/many/0709",
+ "object-tests/many/0710",
+ "object-tests/many/0711",
+ "object-tests/many/0712",
+ "object-tests/many/0713",
+ "object-tests/many/0714",
+ "object-tests/many/0715",
+ "object-tests/many/0716",
+ "object-tests/many/0717",
+ "object-tests/many/0718",
+ "object-tests/many/0719",
+ "object-tests/many/0720",
+ "object-tests/many/0721",
+ "object-tests/many/0722",
+ "object-tests/many/0723",
+ "object-tests/many/0724",
+ "object-tests/many/0725",
+ "object-tests/many/0726",
+ "object-tests/many/0727",
+ "object-tests/many/0728",
+ "object-tests/many/0729",
+ "object-tests/many/0730",
+ "object-tests/many/0731",
+ "object-tests/many/0732",
+ "object-tests/many/0733",
+ "object-tests/many/0734",
+ "object-tests/many/0735",
+ "object-tests/many/0736",
+ "object-tests/many/0737",
+ "object-tests/many/0738",
+ "object-tests/many/0739",
+ "object-tests/many/0740",
+ "object-tests/many/0741",
+ "object-tests/many/0742",
+ "object-tests/many/0743",
+ "object-tests/many/0744",
+ "object-tests/many/0745",
+ "object-tests/many/0746",
+ "object-tests/many/0747",
+ "object-tests/many/0748",
+ "object-tests/many/0749",
+ "object-tests/many/0750",
+ "object-tests/many/0751",
+ "object-tests/many/0752",
+ "object-tests/many/0753",
+ "object-tests/many/0754",
+ "object-tests/many/0755",
+ "object-tests/many/0756",
+ "object-tests/many/0757",
+ "object-tests/many/0758",
+ "object-tests/many/0759",
+ "object-tests/many/0760",
+ "object-tests/many/0761",
+ "object-tests/many/0762",
+ "object-tests/many/0763",
+ "object-tests/many/0764",
+ "object-tests/many/0765",
+ "object-tests/many/0766",
+ "object-tests/many/0767",
+ "object-tests/many/0768",
+ "object-tests/many/0769",
+ "object-tests/many/0770",
+ "object-tests/many/0771",
+ "object-tests/many/0772",
+ "object-tests/many/0773",
+ "object-tests/many/0774",
+ "object-tests/many/0775",
+ "object-tests/many/0776",
+ "object-tests/many/0777",
+ "object-tests/many/0778",
+ "object-tests/many/0779",
+ "object-tests/many/0780",
+ "object-tests/many/0781",
+ "object-tests/many/0782",
+ "object-tests/many/0783",
+ "object-tests/many/0784",
+ "object-tests/many/0785",
+ "object-tests/many/0786",
+ "object-tests/many/0787",
+ "object-tests/many/0788",
+ "object-tests/many/0789",
+ "object-tests/many/0790",
+ "object-tests/many/0791",
+ "object-tests/many/0792",
+ "object-tests/many/0793",
+ "object-tests/many/0794",
+ "object-tests/many/0795",
+ "object-tests/many/0796",
+ "object-tests/many/0797",
+ "object-tests/many/0798",
+ "object-tests/many/0799",
+ "object-tests/many/0800",
+ "object-tests/many/0801",
+ "object-tests/many/0802",
+ "object-tests/many/0803",
+ "object-tests/many/0804",
+ "object-tests/many/0805",
+ "object-tests/many/0806",
+ "object-tests/many/0807",
+ "object-tests/many/0808",
+ "object-tests/many/0809",
+ "object-tests/many/0810",
+ "object-tests/many/0811",
+ "object-tests/many/0812",
+ "object-tests/many/0813",
+ "object-tests/many/0814",
+ "object-tests/many/0815",
+ "object-tests/many/0816",
+ "object-tests/many/0817",
+ "object-tests/many/0818",
+ "object-tests/many/0819",
+ "object-tests/many/0820",
+ "object-tests/many/0821",
+ "object-tests/many/0822",
+ "object-tests/many/0823",
+ "object-tests/many/0824",
+ "object-tests/many/0825",
+ "object-tests/many/0826",
+ "object-tests/many/0827",
+ "object-tests/many/0828",
+ "object-tests/many/0829",
+ "object-tests/many/0830",
+ "object-tests/many/0831",
+ "object-tests/many/0832",
+ "object-tests/many/0833",
+ "object-tests/many/0834",
+ "object-tests/many/0835",
+ "object-tests/many/0836",
+ "object-tests/many/0837",
+ "object-tests/many/0838",
+ "object-tests/many/0839",
+ "object-tests/many/0840",
+ "object-tests/many/0841",
+ "object-tests/many/0842",
+ "object-tests/many/0843",
+ "object-tests/many/0844",
+ "object-tests/many/0845",
+ "object-tests/many/0846",
+ "object-tests/many/0847",
+ "object-tests/many/0848",
+ "object-tests/many/0849",
+ "object-tests/many/0850",
+ "object-tests/many/0851",
+ "object-tests/many/0852",
+ "object-tests/many/0853",
+ "object-tests/many/0854",
+ "object-tests/many/0855",
+ "object-tests/many/0856",
+ "object-tests/many/0857",
+ "object-tests/many/0858",
+ "object-tests/many/0859",
+ "object-tests/many/0860",
+ "object-tests/many/0861",
+ "object-tests/many/0862",
+ "object-tests/many/0863",
+ "object-tests/many/0864",
+ "object-tests/many/0865",
+ "object-tests/many/0866",
+ "object-tests/many/0867",
+ "object-tests/many/0868",
+ "object-tests/many/0869",
+ "object-tests/many/0870",
+ "object-tests/many/0871",
+ "object-tests/many/0872",
+ "object-tests/many/0873",
+ "object-tests/many/0874",
+ "object-tests/many/0875",
+ "object-tests/many/0876",
+ "object-tests/many/0877",
+ "object-tests/many/0878",
+ "object-tests/many/0879",
+ "object-tests/many/0880",
+ "object-tests/many/0881",
+ "object-tests/many/0882",
+ "object-tests/many/0883",
+ "object-tests/many/0884",
+ "object-tests/many/0885",
+ "object-tests/many/0886",
+ "object-tests/many/0887",
+ "object-tests/many/0888",
+ "object-tests/many/0889",
+ "object-tests/many/0890",
+ "object-tests/many/0891",
+ "object-tests/many/0892",
+ "object-tests/many/0893",
+ "object-tests/many/0894",
+ "object-tests/many/0895",
+ "object-tests/many/0896",
+ "object-tests/many/0897",
+ "object-tests/many/0898",
+ "object-tests/many/0899",
+ "object-tests/many/0900",
+ "object-tests/many/0901",
+ "object-tests/many/0902",
+ "object-tests/many/0903",
+ "object-tests/many/0904",
+ "object-tests/many/0905",
+ "object-tests/many/0906",
+ "object-tests/many/0907",
+ "object-tests/many/0908",
+ "object-tests/many/0909",
+ "object-tests/many/0910",
+ "object-tests/many/0911",
+ "object-tests/many/0912",
+ "object-tests/many/0913",
+ "object-tests/many/0914",
+ "object-tests/many/0915",
+ "object-tests/many/0916",
+ "object-tests/many/0917",
+ "object-tests/many/0918",
+ "object-tests/many/0919",
+ "object-tests/many/0920",
+ "object-tests/many/0921",
+ "object-tests/many/0922",
+ "object-tests/many/0923",
+ "object-tests/many/0924",
+ "object-tests/many/0925",
+ "object-tests/many/0926",
+ "object-tests/many/0927",
+ "object-tests/many/0928",
+ "object-tests/many/0929",
+ "object-tests/many/0930",
+ "object-tests/many/0931",
+ "object-tests/many/0932",
+ "object-tests/many/0933",
+ "object-tests/many/0934",
+ "object-tests/many/0935",
+ "object-tests/many/0936",
+ "object-tests/many/0937",
+ "object-tests/many/0938",
+ "object-tests/many/0939",
+ "object-tests/many/0940",
+ "object-tests/many/0941",
+ "object-tests/many/0942",
+ "object-tests/many/0943",
+ "object-tests/many/0944",
+ "object-tests/many/0945",
+ "object-tests/many/0946",
+ "object-tests/many/0947",
+ "object-tests/many/0948",
+ "object-tests/many/0949",
+ "object-tests/many/0950",
+ "object-tests/many/0951",
+ "object-tests/many/0952",
+ "object-tests/many/0953",
+ "object-tests/many/0954",
+ "object-tests/many/0955",
+ "object-tests/many/0956",
+ "object-tests/many/0957",
+ "object-tests/many/0958",
+ "object-tests/many/0959",
+ "object-tests/many/0960",
+ "object-tests/many/0961",
+ "object-tests/many/0962",
+ "object-tests/many/0963",
+ "object-tests/many/0964",
+ "object-tests/many/0965",
+ "object-tests/many/0966",
+ "object-tests/many/0967",
+ "object-tests/many/0968",
+ "object-tests/many/0969",
+ "object-tests/many/0970",
+ "object-tests/many/0971",
+ "object-tests/many/0972",
+ "object-tests/many/0973",
+ "object-tests/many/0974",
+ "object-tests/many/0975",
+ "object-tests/many/0976",
+ "object-tests/many/0977",
+ "object-tests/many/0978",
+ "object-tests/many/0979",
+ "object-tests/many/0980",
+ "object-tests/many/0981",
+ "object-tests/many/0982",
+ "object-tests/many/0983",
+ "object-tests/many/0984",
+ "object-tests/many/0985",
+ "object-tests/many/0986",
+ "object-tests/many/0987",
+ "object-tests/many/0988",
+ "object-tests/many/0989",
+ "object-tests/many/0990",
+ "object-tests/many/0991",
+ "object-tests/many/0992",
+ "object-tests/many/0993",
+ "object-tests/many/0994",
+ "object-tests/many/0995",
+ "object-tests/many/0996",
+ "object-tests/many/0997",
+ "object-tests/many/0998",
+ "object-tests/many/0999",
+ "object-tests/many/1000"
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-replaced",
+ "id": "operations/s3/list-start-after",
"profile": "s3",
"lane": "core",
- "purpose": "get replaced",
+ "purpose": "Send start-after, and list only the keys after it",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/replaced.bin",
- "op": "get"
+ "op": "list_page",
+ "prefix": "object-tests/board/",
+ "start_after": "object-tests/board/a.txt"
},
"exchanges": [
{
@@ -86802,7 +125690,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/replaced.bin"
+ "value": "/fixture"
}
},
{
@@ -86812,60 +125700,29 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-8631a8b6edf7\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "base64",
- "data": "Yg=="
- }
- }
- },
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "2"
}
},
{
- "at": "/path",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/replaced.bin"
+ "value": "object-tests/board/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/start-after",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "value": "object-tests/board/a.txt"
}
}
],
@@ -86874,95 +125731,21 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-8631a8b6edf7\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "Yg=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/21000falseobject-tests/board/a.txtobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARD"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-8631a8b6edf7\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Yg=="
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-single-part",
- "profile": "s3",
- "lane": "core",
- "purpose": "get single part",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/single.bin",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -86978,7 +125761,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/single.bin"
+ "value": "/fixture"
}
},
{
@@ -86988,60 +125771,37 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-69ebdafc497f\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "base64",
- "data": "b25seQ=="
- }
- }
- },
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "2"
}
},
{
- "at": "/path",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/single.bin"
+ "value": "object-tests/board/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/start-after",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/board/a.txt"
}
},
{
- "at": "/headers/range",
+ "at": "/query/encoding-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -87050,20 +125810,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-3/4",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-69ebdafc497f\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "b25seQ=="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/21000urlfalseobject-tests/board/a.txtobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARD"
+ },
+ "framing": "chunked"
}
}
]
@@ -87079,31 +125838,31 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-69ebdafc497f\""
+ "value": "object-tests/board/nested/c.txt"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 4
+ "value": 1
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "\"fixture-626f61720001\""
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -87114,254 +125873,7 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "b25seQ=="
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-suffix-longer-than-object",
- "profile": "s3",
- "lane": "core",
- "purpose": "get suffix longer than object",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "suffix": 100
- }
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=-100"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- },
- {
- "request": [
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=-100"
- }
- },
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- }
- ],
- "then": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=0-29"
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- }
- ]
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-length": "30",
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "empty"
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
+ "at": "/value/entries/0/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -87372,254 +125884,53 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-suffix",
- "profile": "s3",
- "lane": "core",
- "purpose": "get suffix",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "suffix": 6
- }
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=-6"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 24-29/30",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": "b2JqZWN0"
- }
- }
- },
- {
- "request": [
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=-6"
- }
- },
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- }
- ],
- "then": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=24-29"
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 24-29/30",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": "b2JqZWN0"
- }
- }
- }
- ]
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-length": "6",
- "content-range": "bytes 24-29/30",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "empty"
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/1/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "object-tests/board/z.txt"
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
+ "value": 2
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/1/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 6
+ "value": "\"fixture-626f61720002\""
}
},
{
- "at": "/value/content_type",
- "optional": false,
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "binary/octet-stream"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/1/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -87630,173 +125941,56 @@
}
},
{
- "at": "/value/body_base64",
- "optional": false,
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "b2JqZWN0"
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-unauthenticated",
- "profile": "s3",
- "lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 403,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nInvalidAccessKeyIdFixture error"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 403,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nInvalidAccessKeyIdFixture error"
- },
- "framing": "chunked"
- }
- }
- ]
- }
- ],
- "expect": [
+ },
{
- "at": "/outcome",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": "error"
+ "is": "array_length",
+ "value": 2
}
},
{
- "at": "/status",
+ "at": "/value/prefixes",
"optional": false,
"rule": {
- "is": "equal",
- "value": 403
+ "is": "array_length",
+ "value": 0
}
},
{
- "at": "/code",
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidAccessKeyId"
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-whole",
+ "id": "operations/s3/list-start-after-delimited",
"profile": "s3",
"lane": "core",
- "purpose": "get whole",
+ "purpose": "Send a start-after that names no key; it skips the keys and common prefixes up to it",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/board/",
+ "start_after": "object-tests/board/b"
},
"exchanges": [
{
@@ -87816,7 +126010,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -87826,6 +126020,38 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/query/start-after",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/b"
+ }
}
],
"allow_headers": [
@@ -87835,17 +126061,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/21000/falseobject-tests/board/bobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARDobject-tests/board/nested/"
+ },
+ "framing": "chunked"
}
},
{
@@ -87863,7 +126089,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture"
}
},
{
@@ -87875,11 +126101,43 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/query/start-after",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/b"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -87888,20 +126146,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/21000/urlfalseobject-tests/board/bobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARDobject-tests/board/nested/"
+ },
+ "framing": "chunked"
}
}
]
@@ -87917,31 +126174,31 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
+ "value": "object-tests/board/z.txt"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 2
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "\"fixture-626f61720002\""
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -87952,27 +126209,75 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes/0",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": "object-tests/board/nested/"
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-xml-looking",
+ "id": "operations/s3/list-truncated-without-token",
"profile": "s3",
"lane": "core",
- "purpose": "get xml looking",
+ "purpose": "Report an error when a truncated page carries no continuation token; do not stop early or list from the start again",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
+ "origin": "constructed",
"call": {
- "key": "object",
- "op": "get"
+ "op": "list",
+ "page_size": 2,
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -87992,7 +126297,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/fixture"
}
},
{
@@ -88004,143 +126309,50 @@
}
},
{
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
- },
- "body": {
- "encoding": "base64",
- "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "2"
}
},
{
- "at": "/path",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "object-tests/board/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/max-keys",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "value": "2"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-32/33",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/22trueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-626f61720000"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-noise-tolerance",
- "profile": "s3",
- "lane": "core",
- "purpose": "get noise tolerance",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
- ],
- "origin": "constructed",
- "call": {
- "key": "object",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -88156,7 +126368,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/fixture"
}
},
{
@@ -88168,104 +126380,56 @@
}
},
{
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"a-different-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "another-id",
- "x-fixture-unknown": "ignored"
- },
- "body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "2"
}
},
{
- "at": "/path",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "object-tests/board/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/max-keys",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
+ "value": "2"
}
},
{
- "at": "/headers/range",
+ "at": "/query/encoding-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "url"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-4/5",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"a-different-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "another-id",
- "x-fixture-unknown": "ignored"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/22urltrueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-626f61720000"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARD"
+ },
+ "framing": "chunked"
}
}
]
@@ -88277,32 +126441,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "aGVsbG8="
+ "value": "error"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-version",
+ "id": "operations/s3/list-encoding-ignored",
"profile": "s3",
"lane": "core",
- "purpose": "get version",
+ "purpose": "Read the keys as sent when a service ignores encoding-type=url and the page has no EncodingType; a % that begins no escape is text, as in URL percent-decoding",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
+ "https://github.com/rclone/rclone/tree/master/backend/s3/provider",
+ "https://url.spec.whatwg.org/#percent-decode"
],
+ "origin": "constructed",
"call": {
- "key": "object",
- "op": "get",
- "version": "opaque+/version="
+ "op": "list_page",
+ "prefix": "object-tests/percent/"
},
"exchanges": [
{
@@ -88322,7 +126479,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/fixture"
}
},
{
@@ -88334,44 +126491,40 @@
}
},
{
- "at": "/query/versionId",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "opaque+/version="
+ "value": "2"
}
},
{
- "at": "/headers/content-type",
- "optional": true,
+ "at": "/query/prefix",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
+ "is": "equal",
+ "value": "object-tests/percent/"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
"headers": {
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id",
- "x-amz-version-id": "opaque+/version="
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/percent/31000falseobject-tests/percent/%zz.txt2024-01-01T00:00:00.000Z"fixture-706572000000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/percent/100%-off.txt2024-01-01T00:00:00.000Z"fixture-706572000001"CRC64NVMEFULL_OBJECT2STANDARDobject-tests/percent/50%2024-01-01T00:00:00.000Z"fixture-706572000002"CRC64NVMEFULL_OBJECT3STANDARD"
+ },
+ "framing": "chunked"
}
},
{
@@ -88389,7 +126542,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/fixture"
}
},
{
@@ -88401,53 +126554,48 @@
}
},
{
- "at": "/query/versionId",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "opaque+/version="
+ "value": "2"
}
},
{
- "at": "/headers/content-type",
- "optional": true,
+ "at": "/query/prefix",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
+ "is": "equal",
+ "value": "object-tests/percent/"
}
},
{
- "at": "/headers/range",
+ "at": "/query/encoding-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "url"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-4/5",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id",
- "x-amz-version-id": "opaque+/version="
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/percent/31000falseobject-tests/percent/%zz.txt2024-01-01T00:00:00.000Z"fixture-706572000000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/percent/100%-off.txt2024-01-01T00:00:00.000Z"fixture-706572000001"CRC64NVMEFULL_OBJECT2STANDARDobject-tests/percent/50%2024-01-01T00:00:00.000Z"fixture-706572000002"CRC64NVMEFULL_OBJECT3STANDARD"
+ },
+ "framing": "chunked"
}
}
]
@@ -88463,36 +126611,215 @@
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "opaque+/version="
+ "value": "object-tests/percent/%zz.txt"
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-706572000000\""
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/percent/100%-off.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-706572000001\""
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/percent/50%"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-706572000002\""
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-temporary-redirect",
+ "id": "operations/s3/put-bucket-missing",
"profile": "s3",
"lane": "core",
- "purpose": "Report a 307 TemporaryRedirect as an error",
+ "purpose": "put bucket missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "transient",
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
+ "key": "object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -88504,7 +126831,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -88512,7 +126839,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object.txt"
}
},
{
@@ -88520,7 +126847,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "bm90aGluZyBpcyBzdG9yZWQ="
}
}
],
@@ -88529,72 +126856,16 @@
],
"allow_query": [],
"response": {
- "status": 307,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "location": "https://fixture.s3.eu-central-1.amazonaws.com/object-tests/read/object.txt"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nTemporaryRedirectPlease re-send this request to the specified temporary endpoint. Continue to use the original request endpoint for future requests.fixture.s3.eu-central-1.amazonaws.comfixturefixture"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 307,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "location": "https://fixture.s3.eu-central-1.amazonaws.com/object-tests/read/object.txt"
},
"body": {
"encoding": "utf8",
- "data": "\nTemporaryRedirectPlease re-send this request to the specified temporary endpoint. Continue to use the original request endpoint for future requests.fixture.s3.eu-central-1.amazonaws.comfixturefixture"
+ "data": "\nNoSuchBucketFixture error"
},
"framing": "chunked"
}
@@ -88616,7 +126887,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 307
+ "value": 404
}
},
{
@@ -88624,23 +126895,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "TemporaryRedirect"
+ "value": "NoSuchBucket"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-wrong-region",
+ "id": "operations/s3/put-created-empty",
"profile": "s3",
"lane": "core",
- "purpose": "Report a 301 PermanentRedirect from an endpoint in another region as an error",
+ "purpose": "put created empty",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "body_base64": "",
+ "key": "object-tests/write/empty.bin",
+ "op": "put"
},
"exchanges": [
{
@@ -88652,7 +126932,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -88660,7 +126940,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/empty.bin"
}
},
{
@@ -88677,74 +126957,18 @@
],
"allow_query": [],
"response": {
- "status": 301,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "x-amz-bucket-region": "eu-central-1"
+ "etag": "\"fixture-7d64e1430626\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nPermanentRedirectThe bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.fixture.s3.eu-central-1.amazonaws.comfixturefixture"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
+ "encoding": "base64",
+ "data": ""
}
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 301,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "x-amz-bucket-region": "eu-central-1"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nPermanentRedirectThe bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.fixture.s3.eu-central-1.amazonaws.comfixturefixture"
- },
- "framing": "chunked"
}
}
]
@@ -88756,41 +126980,43 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 301
+ "value": "\"fixture-7d64e1430626\""
}
},
{
- "at": "/code",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "PermanentRedirect"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-body-cut-short",
+ "id": "operations/s3/put-created",
"profile": "s3",
"lane": "core",
- "purpose": "Report a body that ends before its Content-Length as an error, or resume it, but never return the short body",
+ "purpose": "put created",
"sources": [
- "https://www.rfc-editor.org/rfc/rfc9112#section-8",
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "transient",
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -88802,7 +127028,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -88810,7 +127036,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -88818,7 +127044,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
}
],
@@ -88829,20 +127055,68 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
+ "etag": "\"fixture-fbe0ab688a03\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- },
- "truncate_body_after": 15
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-fbe0ab688a03\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-created-key-question",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put created, with the key \"question?mark.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -88850,7 +127124,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -88858,7 +127132,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/keys/question?mark.txt"
}
},
{
@@ -88866,15 +127140,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "value": "MDEyMzQ1Njc4OQ=="
}
}
],
@@ -88883,25 +127149,68 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
+ "etag": "\"fixture-fbe0ab688a03\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- },
- "truncate_body_after": 15
+ "data": ""
+ }
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-fbe0ab688a03\""
+ }
},
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-created-key-hash",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put created, with the key \"hash#tag.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -88911,7 +127220,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -88919,7 +127228,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/keys/hash#tag.txt"
}
},
{
@@ -88927,31 +127236,79 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
}
],
"allow_headers": [
- "content-type",
"content-type"
],
"allow_query": [],
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
+ "etag": "\"fixture-fbe0ab688a03\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "data": ""
}
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-fbe0ab688a03\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-created-key-percent",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put created, with the key \"percent%20.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -88959,7 +127316,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -88967,7 +127324,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/keys/percent%20.txt"
}
},
{
@@ -88975,40 +127332,79 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "value": "MDEyMzQ1Njc4OQ=="
}
}
],
"allow_headers": [
- "content-type",
"content-type"
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
+ "etag": "\"fixture-fbe0ab688a03\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "data": ""
}
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-fbe0ab688a03\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-created-key-plus",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put created, with the key \"plus+plus.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -89016,7 +127412,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -89024,7 +127420,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/keys/plus+plus.txt"
}
},
{
@@ -89032,47 +127428,30 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=15-"
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
+ "value": "MDEyMzQ1Njc4OQ=="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 15-29/30",
- "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
+ "etag": "\"fixture-fbe0ab688a03\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "Y3QtdGVzdHMtb2JqZWN0"
+ "data": ""
}
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -89080,36 +127459,44 @@
"at": "/outcome",
"optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "error",
- "ok"
- ]
+ "is": "equal",
+ "value": "ok"
}
},
{
- "at": "/value/body_base64",
- "optional": true,
+ "at": "/value/etag",
+ "optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": "\"fixture-fbe0ab688a03\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-slow-down",
+ "id": "operations/s3/put-created-key-space",
"profile": "s3",
"lane": "core",
- "purpose": "Report a 503 SlowDown answer as an error, after at most 5 retries",
+ "purpose": "put created, with the key \"space name.txt\"",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "transient",
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/space name.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -89121,7 +127508,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -89129,7 +127516,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/keys/space name.txt"
}
},
{
@@ -89137,7 +127524,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
}
],
@@ -89146,20 +127533,70 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-fbe0ab688a03\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-fbe0ab688a03\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-created-key-non-ascii",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put created, with the key \"café/雪.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -89167,7 +127604,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -89175,7 +127612,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/keys/café/雪.txt"
}
},
{
@@ -89183,15 +127620,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "value": "MDEyMzQ1Njc4OQ=="
}
}
],
@@ -89200,22 +127629,68 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-fbe0ab688a03\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-fbe0ab688a03\""
+ }
},
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-created-key-double-slash",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put created, with the key \"double//slash.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -89225,7 +127700,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -89233,7 +127708,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/keys/double//slash.txt"
}
},
{
@@ -89241,7 +127716,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
}
],
@@ -89250,20 +127725,70 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-fbe0ab688a03\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-fbe0ab688a03\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-created-key-trailing-slash",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put created, with the key \"trailing-slash/\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -89271,7 +127796,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -89279,7 +127804,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/keys/trailing-slash/"
}
},
{
@@ -89287,15 +127812,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "value": "MDEyMzQ1Njc4OQ=="
}
}
],
@@ -89304,23 +127821,68 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-fbe0ab688a03\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-fbe0ab688a03\""
+ }
},
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/copy-missing-source",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Refuse a copy whose source does not exist",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/absent.txt"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -89330,7 +127892,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -89338,7 +127900,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -89348,6 +127910,14 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/absent\\.txt"
+ }
}
],
"allow_headers": [
@@ -89355,7 +127925,7 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
@@ -89364,7 +127934,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
+ "data": "\nNoSuchKeyFixture error"
},
"framing": "chunked"
}
@@ -89376,7 +127946,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -89384,7 +127954,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/object-tests/copy/absent.txt"
}
},
{
@@ -89394,14 +127964,6 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
}
],
"allow_headers": [
@@ -89409,23 +127971,65 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 404,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
}
},
"body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
},
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "NoSuchKey",
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/copy",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Copy an object to another key in the same bucket",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -89435,7 +128039,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -89443,7 +128047,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -89453,6 +128057,14 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
}
],
"allow_headers": [
@@ -89460,7 +128072,7 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
@@ -89469,9 +128081,8 @@
},
"body": {
"encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
}
},
{
@@ -89481,7 +128092,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -89489,7 +128100,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -89499,14 +128110,65 @@
"is": "equal",
"value": ""
}
- },
+ }
+ ],
+ "then": [
{
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
+ }
+ }
+ ]
}
],
"allow_headers": [
@@ -89514,23 +128176,58 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
},
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/copy-source-version",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Copy an earlier version of an object, named by versionId in x-amz-copy-source",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt",
+ "source_version": "fixture-version-1"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -89540,7 +128237,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -89548,7 +128245,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -89558,6 +128255,14 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt\\?versionId=fixture-version-1"
+ }
}
],
"allow_headers": [
@@ -89565,7 +128270,7 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
@@ -89574,9 +128279,8 @@
},
"body": {
"encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
}
},
{
@@ -89586,7 +128290,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -89594,7 +128298,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -89606,63 +128310,71 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/versionId",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "fixture-version-1"
}
}
],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
- }
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
- }
- },
+ "then": [
{
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt\\?versionId=fixture-version-1"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
+ }
+ }
+ ]
}
],
"allow_headers": [
@@ -89670,20 +128382,55 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/copy-200-internal-error",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report a copy answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
+ "sources": [
+ "https://repost.aws/knowledge-center/s3-resolve-200-internalerror",
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html",
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html"
+ ],
+ "origin": "transient",
+ "derived_from": "operations/s3/copy",
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -89691,7 +128438,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -89699,7 +128446,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -89711,11 +128458,11 @@
}
},
{
- "at": "/headers/range",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -89724,7 +128471,7 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
@@ -89733,59 +128480,11 @@
},
"body": {
"encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
- }
- ],
- "optional": true
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 503
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "SlowDown"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-if-unmodified-since-past",
- "profile": "s3",
- "lane": "core",
- "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -89793,7 +128492,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -89801,7 +128500,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -89811,14 +128510,66 @@
"is": "equal",
"value": ""
}
- },
+ }
+ ],
+ "then": [
{
- "at": "/headers/if-unmodified-since",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
}
],
"allow_headers": [
@@ -89826,20 +128577,24 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
- },
+ }
+ ]
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -89847,7 +128602,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -89855,7 +128610,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -89867,19 +128622,11 @@
}
},
{
- "at": "/headers/range",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- },
- {
- "at": "/headers/if-unmodified-since",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -89888,7 +128635,7 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
@@ -89897,56 +128644,14 @@
},
"body": {
"encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PreconditionFailed"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-if-modified-since-future",
- "profile": "s3",
- "lane": "core",
- "purpose": "Read an object when If-Modified-Since names a future date",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "if_modified_since": "Fri, 01 Jan 2100 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -89956,7 +128661,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -89964,7 +128669,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -89976,11 +128681,11 @@
}
},
{
- "at": "/headers/if-modified-since",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "Fri, 01 Jan 2100 00:00:00 GMT"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -89991,19 +128696,23 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
- },
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -90011,7 +128720,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -90019,7 +128728,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -90031,19 +128740,11 @@
}
},
{
- "at": "/headers/range",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- },
- {
- "at": "/headers/if-modified-since",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Fri, 01 Jan 2100 00:00:00 GMT"
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -90052,94 +128753,23 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
+ ],
+ "optional": true
},
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-if-modified-since-past",
- "profile": "s3",
- "lane": "core",
- "purpose": "Read an object modified since a past date",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "if_modified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -90149,7 +128779,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -90157,7 +128787,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -90169,11 +128799,11 @@
}
},
{
- "at": "/headers/if-modified-since",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -90184,19 +128814,23 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
- },
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -90204,7 +128838,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -90212,7 +128846,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -90224,19 +128858,11 @@
}
},
{
- "at": "/headers/range",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- },
- {
- "at": "/headers/if-modified-since",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -90245,23 +128871,22 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -90270,66 +128895,36 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "error"
}
},
{
- "at": "/value/body_base64",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": "InternalError"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/get-content-encoding-gzip",
+ "id": "operations/s3/copy-replace-metadata",
"profile": "s3",
"lane": "core",
- "purpose": "Return the stored gzip bytes and Content-Encoding: gzip without decoding them",
+ "purpose": "Copy an object with new metadata and a new content type. S3 keeps the source's unless x-amz-metadata-directive is REPLACE, so a client that sets either must send it",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "content_type": "text/plain",
+ "key": "object-tests/copy/target.txt",
+ "metadata": {
+ "colour": "blue"
+ },
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -90341,7 +128936,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -90349,7 +128944,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -90359,6 +128954,38 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-metadata-directive",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "REPLACE"
+ }
+ },
+ {
+ "at": "/headers/x-amz-meta-colour",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blue"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain"
+ }
}
],
"allow_headers": [
@@ -90368,17 +128995,14 @@
"response": {
"status": 200,
"headers": {
- "content-encoding": "gzip",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
}
}
},
@@ -90389,7 +129013,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -90397,7 +129021,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -90407,14 +129031,89 @@
"is": "equal",
"value": ""
}
- },
+ }
+ ],
+ "then": [
{
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-metadata-directive",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "REPLACE"
+ }
+ },
+ {
+ "at": "/headers/x-amz-meta-colour",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blue"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
+ }
+ }
+ ]
}
],
"allow_headers": [
@@ -90422,20 +129121,17 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-encoding": "gzip",
- "content-range": "bytes 0-41/42",
- "content-type": "binary/octet-stream",
+ "content-length": "5",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ "encoding": "empty"
}
}
}
@@ -90450,72 +129146,25 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 42
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
- }
- },
- {
- "at": "/value/content_encoding",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "gzip"
- }
}
],
"refusal": null
},
{
- "id": "operations/s3/get-content-properties",
+ "id": "operations/s3/copy-replace-tags",
"profile": "s3",
"lane": "core",
- "purpose": "Return the stored content properties from a GET",
+ "purpose": "Copy an object with new tags. S3 copies the source's tags unless x-amz-tagging-directive is REPLACE, so a client that sets tags must send it",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt",
+ "tags": {
+ "project": "copied"
+ }
},
"exchanges": [
{
@@ -90527,7 +129176,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -90535,7 +129184,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -90545,63 +129194,29 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "cache-control": "max-age=3600",
- "content-disposition": "attachment; filename=\"report.txt\"",
- "content-language": "nl-NL",
- "content-type": "text/plain; charset=utf-8",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- },
- {
- "request": [
{
- "at": "/method",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "GET"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
},
{
- "at": "/path",
+ "at": "/headers/x-amz-tagging-directive",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "REPLACE"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/x-amz-tagging",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "value": "project=copied"
}
}
],
@@ -90610,122 +129225,19 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "cache-control": "max-age=3600",
- "content-disposition": "attachment; filename=\"report.txt\"",
- "content-language": "nl-NL",
- "content-range": "bytes 0-29/30",
- "content-type": "text/plain; charset=utf-8",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "text/plain; charset=utf-8"
- }
- },
- {
- "at": "/value/content_language",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "nl-NL"
- }
- },
- {
- "at": "/value/content_disposition",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "attachment; filename=\"report.txt\""
- }
- },
- {
- "at": "/value/cache_control",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "max-age=3600"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/head-committed",
- "profile": "s3",
- "lane": "core",
- "purpose": "head committed",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/object.bin",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -90741,7 +129253,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -90753,6 +129265,81 @@
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-tagging-directive",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "REPLACE"
+ }
+ },
+ {
+ "at": "/headers/x-amz-tagging",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "project=copied"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -90760,17 +129347,15 @@
"response": {
"status": 200,
"headers": {
- "content-length": "5242886",
- "content-type": "binary/octet-stream",
+ "content-length": "5",
"date": {
"from": "now"
},
- "etag": "\"fixture-ae1b6d1d32ce\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "empty"
}
}
}
@@ -90785,56 +129370,23 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ae1b6d1d32ce\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 5242886
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
}
],
"refusal": null
},
{
- "id": "operations/s3/head-metadata",
+ "id": "operations/s3/copy-storage-class",
"profile": "s3",
"lane": "core",
- "purpose": "head metadata",
+ "purpose": "Copy an object into another storage class, named in x-amz-storage-class",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "key": "object-tests/metadata/object.txt",
- "op": "head"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt",
+ "storage_class": "STANDARD_IA"
},
"exchanges": [
{
@@ -90846,7 +129398,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -90854,7 +129406,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/object.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -90864,6 +129416,22 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-storage-class",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "STANDARD_IA"
+ }
}
],
"allow_headers": [
@@ -90873,98 +129441,17 @@
"response": {
"status": 200,
"headers": {
- "content-length": "1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-name": "value",
- "x-amz-meta-second": "2"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/metadata",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": {
- "name": "value",
- "second": "2"
- }
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/head-missing",
- "profile": "s3",
- "lane": "core",
- "purpose": "head missing",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/read/absent.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -90980,7 +129467,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/absent.txt"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -90992,21 +129479,89 @@
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-storage-class",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "STANDARD_IA"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "empty"
}
}
}
@@ -91019,31 +129574,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/head",
+ "id": "operations/s3/copy-source-if-match",
"profile": "s3",
"lane": "core",
- "purpose": "head",
+ "purpose": "Copy an object only if the source still has this ETag, named in x-amz-copy-source-if-match",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "head"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_match": "\"fixture-etag\"",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -91055,7 +129604,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -91063,7 +129612,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -91073,6 +129622,22 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
}
],
"allow_headers": [
@@ -91082,85 +129647,17 @@
"response": {
"status": 200,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/head-content-properties",
- "profile": "s3",
- "lane": "core",
- "purpose": "Return the stored content properties from a HEAD",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -91176,7 +129673,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -91188,6 +129685,73 @@
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -91195,20 +129759,15 @@
"response": {
"status": 200,
"headers": {
- "cache-control": "max-age=3600",
- "content-disposition": "attachment; filename=\"report.txt\"",
- "content-language": "nl-NL",
- "content-length": "30",
- "content-type": "text/plain; charset=utf-8",
+ "content-length": "5",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "empty"
}
}
}
@@ -91223,81 +129782,23 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "text/plain; charset=utf-8"
- }
- },
- {
- "at": "/value/content_language",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "nl-NL"
- }
- },
- {
- "at": "/value/content_disposition",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "attachment; filename=\"report.txt\""
- }
- },
- {
- "at": "/value/cache_control",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "max-age=3600"
- }
}
],
"refusal": null
},
{
- "id": "operations/s3/head-if-unmodified-since-past",
+ "id": "operations/s3/copy-source-if-match-failed",
"profile": "s3",
"lane": "core",
- "purpose": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since",
+ "purpose": "Report a copy whose source does not have the ETag in x-amz-copy-source-if-match as a failed condition. S3 answers 412 PreconditionFailed and writes nothing",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "head"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_match": "\"fixture-0123456789ab\"",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -91309,7 +129810,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -91317,7 +129818,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/read/object.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -91329,11 +129830,19 @@
}
},
{
- "at": "/headers/if-unmodified-since",
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ "value": "\"fixture-0123456789ab\""
}
}
],
@@ -91344,53 +129853,18 @@
"response": {
"status": 412,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
}
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/head-storage-class",
- "profile": "s3",
- "lane": "core",
- "purpose": "Read the storage class of an object",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html"
- ],
- "call": {
- "key": "object-tests/classes/object.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -91406,7 +129880,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/classes/object.txt"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -91418,6 +129892,74 @@
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-0123456789ab\""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -91430,8 +129972,7 @@
"from": "now"
},
"etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-storage-class": "STANDARD_IA"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "empty"
@@ -91447,31 +129988,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/storage_class",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "STANDARD_IA"
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PreconditionFailed"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/head-bucket",
+ "id": "operations/s3/copy-source-if-none-match-failed",
"profile": "s3",
"lane": "core",
- "purpose": "Confirm that a bucket exists",
+ "purpose": "Report a copy whose source has the ETag in x-amz-copy-source-if-none-match as a failed condition. A copy answers 412 PreconditionFailed where a read answers 304",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "bucket": "fixture",
- "op": "s3.head_bucket"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_none_match": "\"fixture-etag\"",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -91483,7 +130034,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -91491,7 +130042,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -91501,79 +130052,21 @@
"is": "equal",
"value": ""
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "date": {
- "from": "now"
- },
- "x-amz-bucket-region": "eu-central-1"
- },
- "body": {
- "encoding": "empty"
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/head-bucket-missing",
- "profile": "s3",
- "lane": "core",
- "purpose": "Report a bucket that does not exist",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html"
- ],
- "call": {
- "bucket": "object-tests-absent",
- "op": "s3.head_bucket"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
},
{
- "at": "/path",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "/object-tests-absent"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/x-amz-copy-source-if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "\"fixture-etag\""
}
}
],
@@ -91582,55 +130075,20 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 412,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
}
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/head-key-question",
- "profile": "s3",
- "lane": "core",
- "purpose": "head, with the key \"question?mark.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/question?mark.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -91646,7 +130104,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/question?mark.txt"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -91658,6 +130116,74 @@
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -91665,17 +130191,15 @@
"response": {
"status": 200,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-length": "5",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "empty"
}
}
}
@@ -91688,58 +130212,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
+ "value": "error"
}
},
{
- "at": "/value/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 412
}
},
{
- "at": "/value/content_type",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "PreconditionFailed"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/head-key-hash",
+ "id": "operations/s3/copy-source-if-modified-since",
"profile": "s3",
"lane": "core",
- "purpose": "head, with the key \"hash#tag.txt\"",
+ "purpose": "Copy an object only if the source changed after a time, named in x-amz-copy-source-if-modified-since as an HTTP date",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "key": "object-tests/keys/hash#tag.txt",
- "op": "head"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_modified_since": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -91751,7 +130258,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -91759,7 +130266,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/hash#tag.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -91769,6 +130276,22 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-modified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
}
],
"allow_headers": [
@@ -91778,85 +130301,17 @@
"response": {
"status": 200,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/head-key-percent",
- "profile": "s3",
- "lane": "core",
- "purpose": "head, with the key \"percent%20.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/percent%20.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -91872,7 +130327,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/percent%20.txt"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -91884,6 +130339,73 @@
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-modified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -91891,17 +130413,15 @@
"response": {
"status": 200,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-length": "5",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "empty"
}
}
}
@@ -91916,56 +130436,23 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
}
],
"refusal": null
},
{
- "id": "operations/s3/head-key-plus",
+ "id": "operations/s3/copy-source-if-unmodified-since-failed",
"profile": "s3",
"lane": "core",
- "purpose": "head, with the key \"plus+plus.txt\"",
+ "purpose": "Report a copy whose source changed after the time in x-amz-copy-source-if-unmodified-since as a failed condition, 412 PreconditionFailed",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "key": "object-tests/keys/plus+plus.txt",
- "op": "head"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_unmodified_since": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -91977,7 +130464,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -91985,7 +130472,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/plus+plus.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -91995,6 +130482,22 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-unmodified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
}
],
"allow_headers": [
@@ -92002,87 +130505,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 412,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/head-key-space",
- "profile": "s3",
- "lane": "core",
- "purpose": "head, with the key \"space name.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/space name.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -92098,7 +130534,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/space name.txt"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -92110,6 +130546,74 @@
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-unmodified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -92117,17 +130621,15 @@
"response": {
"status": 200,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-length": "5",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "empty"
}
}
}
@@ -92140,58 +130642,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
+ "value": "error"
}
},
{
- "at": "/value/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 412
}
},
{
- "at": "/value/content_type",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "PreconditionFailed"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/head-key-non-ascii",
+ "id": "operations/s3/copy-across-buckets",
"profile": "s3",
"lane": "core",
- "purpose": "head, with the key \"café/雪.txt\"",
+ "purpose": "Copy an object from another bucket, which x-amz-copy-source names before the key",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "key": "object-tests/keys/café/雪.txt",
- "op": "head"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_bucket": "source",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -92203,7 +130688,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -92211,7 +130696,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/café/雪.txt"
+ "value": "/fixture/object-tests/copy/target.txt"
}
},
{
@@ -92221,6 +130706,14 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?source/object-tests/copy/source\\.txt"
+ }
}
],
"allow_headers": [
@@ -92230,85 +130723,17 @@
"response": {
"status": 200,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ad03f2ab332a\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/head-key-double-slash",
- "profile": "s3",
- "lane": "core",
- "purpose": "head, with the key \"double//slash.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/double//slash.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -92324,7 +130749,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/double//slash.txt"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -92336,6 +130761,65 @@
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?source/object-tests/copy/source\\.txt"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -92343,17 +130827,15 @@
"response": {
"status": 200,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-length": "5",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "empty"
}
}
}
@@ -92368,60 +130850,79 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
}
],
"refusal": null
},
{
- "id": "operations/s3/head-key-trailing-slash",
+ "id": "operations/s3/copy-source-key-encoded",
"profile": "s3",
"lane": "core",
- "purpose": "head, with the key \"trailing-slash/\"",
+ "purpose": "Copy from a key with a space, +, %, é, ? and #. x-amz-copy-source percent-encodes every byte of the key outside letters, digits, -._~ and /",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "key": "object-tests/keys/trailing-slash/",
- "op": "head"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/a b+c%é?#.txt"
},
"exchanges": [
{
"alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/a%20b%2[Bb]c%25%[Cc]3%[Aa]9%3[Ff]%23\\.txt"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
+ }
+ },
{
"request": [
{
@@ -92437,7 +130938,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/trailing-slash/"
+ "value": "/object-tests/copy/a b+c%é?#.txt"
}
},
{
@@ -92449,6 +130950,65 @@
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/a%20b%2[Bb]c%25%[Cc]3%[Aa]9%3[Ff]%23\\.txt"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -92456,17 +131016,15 @@
"response": {
"status": 200,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-length": "5",
"date": {
"from": "now"
},
- "etag": "\"fixture-ad03f2ab332a\"",
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "empty"
}
}
}
@@ -92481,57 +131039,22 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ad03f2ab332a\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
}
],
"refusal": null
},
{
- "id": "operations/s3/list-bad-marker",
+ "id": "operations/s3/copy-onto-itself",
"profile": "s3",
"lane": "core",
- "purpose": "Report S3's 400 InvalidArgument for a continuation token it did not issue",
+ "purpose": "Report a copy of an object onto itself that changes nothing as an error. S3 answers 400 InvalidRequest",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "continuation_token": "fixture-marker+/ce6f21ae951d=",
- "op": "list_page",
- "prefix": "object-tests/board/"
+ "key": "object-tests/copy/source.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -92543,7 +131066,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -92551,7 +131074,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/copy/source.txt"
}
},
{
@@ -92563,27 +131086,11 @@
}
},
{
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/continuation-token",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-marker+/ce6f21ae951d="
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -92601,7 +131108,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidArgumentFixture error"
+ "data": "\nInvalidRequestFixture error"
},
"framing": "chunked"
}
@@ -92613,7 +131120,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -92621,7 +131128,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -92631,38 +131138,66 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/continuation-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-marker+/ce6f21ae951d="
- }
- },
+ }
+ ],
+ "then": [
{
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/source.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInvalidRequestFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
}
],
"allow_headers": [
@@ -92670,18 +131205,18 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidArgumentThe continuation token provided is incorrectcontinuation-tokenNQMNJ1VWXJVB4568Xe4ibV4/CeMc0lPl/vnTn1PlV2EEGNHZ+ST6o8IyEOh1TYXGMx01Jf1TkbwfTtRpHhsL/Tjn/tA="
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
]
@@ -92709,23 +131244,27 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidArgument"
+ "value": "InvalidRequest"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/list-bucket-missing",
+ "id": "operations/s3/copy-onto-itself-replace-metadata",
"profile": "s3",
"lane": "core",
- "purpose": "Report 404 NoSuchBucket for a bucket that does not exist",
+ "purpose": "Copy an object onto itself to replace its metadata, which S3 accepts with x-amz-metadata-directive: REPLACE",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "op": "list_page",
- "prefix": ""
+ "key": "object-tests/copy/source.txt",
+ "metadata": {
+ "colour": "blue"
+ },
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -92737,7 +131276,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -92745,7 +131284,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/copy/source.txt"
}
},
{
@@ -92757,19 +131296,27 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-metadata-directive",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "REPLACE"
}
},
{
- "at": "/query/prefix",
- "optional": true,
+ "at": "/headers/x-amz-meta-colour",
+ "optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "blue"
}
}
],
@@ -92778,7 +131325,7 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
@@ -92787,9 +131334,8 @@
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchBucketFixture error"
- },
- "framing": "chunked"
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
}
},
{
@@ -92799,7 +131345,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -92807,7 +131353,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -92817,29 +131363,166 @@
"is": "equal",
"value": ""
}
+ }
+ ],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/copy/source.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-metadata-directive",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "REPLACE"
+ }
+ },
+ {
+ "at": "/headers/x-amz-meta-colour",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blue"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "5",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-with-unknown-storage-class",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Refuse a storage class that S3 does not have",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ ],
+ "call": {
+ "body_base64": "Zmlyc3Q=",
+ "key": "object-tests/classes/object.txt",
+ "op": "put",
+ "storage_class": "WARM"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
},
{
- "at": "/query/list-type",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "/fixture/object-tests/classes/object.txt"
}
},
{
- "at": "/query/prefix",
- "optional": true,
+ "at": "/body_base64",
+ "optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "Zmlyc3Q="
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-storage-class",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "WARM"
}
}
],
@@ -92848,7 +131531,7 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
@@ -92857,7 +131540,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchBucketThe specified bucket does not existno-such-bucket-object-testsD3APHS8Y67RT769N4yxkwV/1e8tBe6qQpZ/nVXK6SoorCzIGPjfs539Nq5RPVrfpF9lCuc/OPebqgIzKjrXkTAgalEM="
+ "data": "\nInvalidStorageClassFixture error"
},
"framing": "chunked"
}
@@ -92879,7 +131562,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 400
}
},
{
@@ -92887,24 +131570,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "NoSuchBucket"
+ "value": "InvalidStorageClass"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/list-delimited",
+ "id": "operations/s3/put-with-storage-class",
"profile": "s3",
"lane": "core",
- "purpose": "Send the delimiter, and report the keys it groups as common prefixes, not as entries",
+ "purpose": "Write an object into the STANDARD_IA storage class",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/board/"
+ "body_base64": "Zmlyc3Q=",
+ "key": "object-tests/classes/object.txt",
+ "op": "put",
+ "storage_class": "STANDARD_IA"
},
"exchanges": [
{
@@ -92916,7 +131600,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -92924,7 +131608,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/classes/object.txt"
}
},
{
@@ -92932,31 +131616,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "value": "Zmlyc3Q="
}
},
{
- "at": "/query/delimiter",
+ "at": "/headers/x-amz-storage-class",
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "STANDARD_IA"
}
}
],
@@ -92967,19 +131635,52 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/31000/falseobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARDobject-tests/board/nested/"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-with-md5",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Carry a declared transactional MD5 without substituting a payload or stored-property hash.",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ ],
+ "call": {
+ "body_base64": "aGVsbG8=",
+ "checksum": {
+ "algorithm": "md5",
+ "value_base64": "XUFAKrxLKna5cZ2REBfFkg=="
+ },
+ "key": "object",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -92987,7 +131688,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -92995,7 +131696,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object"
}
},
{
@@ -93003,39 +131704,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/delimiter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
+ "value": "aGVsbG8="
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/content-md5",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "XUFAKrxLKna5cZ2REBfFkg=="
}
}
],
@@ -93046,17 +131723,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/31000/urlfalseobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARDobject-tests/board/nested/"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -93070,167 +131748,26 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/a.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 8
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-1d83e6eb69df\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/z.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-4d347fee6a7b\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- },
- {
- "at": "/value/prefixes/0",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/nested/"
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/s3/list-empty",
+ "id": "operations/s3/put-md5-mismatch",
"profile": "s3",
"lane": "core",
- "purpose": "Report a prefix with no objects as no entries, no prefixes and an empty continuation token",
+ "purpose": "Declared transactional MD5 must cover the exact body bytes; report service rejection of a mismatch.",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/nothing/"
+ "body_base64": "aGVsbG8=",
+ "checksum": {
+ "algorithm": "md5",
+ "value_base64": "K9opmNmw7hl9oUKgRH9nJQ=="
+ },
+ "key": "object",
+ "op": "put"
},
"exchanges": [
{
@@ -93242,7 +131779,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -93250,7 +131787,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object"
}
},
{
@@ -93258,23 +131795,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "aGVsbG8="
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/content-md5",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/nothing/"
+ "value": "K9opmNmw7hl9oUKgRH9nJQ=="
}
}
],
@@ -93283,21 +131812,66 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/nothing/01000false"
+ "data": "\nBadDigestMD5 mismatch"
},
"framing": "chunked"
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BadDigest"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-with-crc32",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Send an additional checksum in its x-amz-checksum- header; S3 stores it as the object's one checksum, in place of the CRC64NVME it adds to a write without one",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ ],
+ "call": {
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "crc32",
+ "value_base64": "ItMTFg=="
+ },
+ "key": "object-tests/checksums/crc32.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -93305,7 +131879,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -93313,7 +131887,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/checksums/crc32.txt"
}
},
{
@@ -93321,31 +131895,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "Y2hlY2tzdW0K"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-checksum-crc32",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/nothing/"
+ "value": "ItMTFg=="
}
},
{
- "at": "/query/encoding-type",
- "optional": false,
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "CRC32"
}
}
],
@@ -93356,17 +131922,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/nothing/01000urlfalse"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -93382,43 +131948,42 @@
}
},
{
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/prefixes",
+ "at": "/value/etag",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "\"fixture-636b73750000\""
}
},
{
- "at": "/value/continuation_token",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3/list-all-empty",
+ "id": "operations/s3/put-computing-sha256",
"profile": "s3",
"lane": "core",
- "purpose": "Report an empty bucket as an empty listing",
+ "purpose": "Compute the SHA256 checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-sha256 or in a trailer of an aws-chunked body",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "op": "list",
- "prefix": ""
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "sha256"
+ },
+ "key": "object-tests/checksums/sha256.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -93430,7 +131995,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -93438,7 +132003,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/checksums/sha256.txt"
}
},
{
@@ -93446,56 +132011,44 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "Y2hlY2tzdW0K"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
"optional": true,
"rule": {
"is": "equal",
- "value": ""
+ "value": "SHA256"
}
},
{
- "at": "/headers/content-type",
- "optional": true,
+ "at": "/headers/x-amz-checksum-sha256",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
+ "is": "equal",
+ "value": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
"encoding": "base64",
- "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PC9MaXN0QnVja2V0UmVzdWx0Pg=="
- },
- "framing": "chunked"
+ "data": ""
+ }
}
},
{
@@ -93505,7 +132058,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -93513,7 +132066,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/checksums/sha256.txt"
}
},
{
@@ -93521,64 +132074,68 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1zaGEyNTY6WUJXanArcXlWOVBZZENUTGtZSjlXTGV2ZWdpUlI4NmJUNDZqeGZ3ZXU5ST0NCg0K"
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "SHA256"
+ }
+ },
+ {
+ "at": "/headers/x-amz-content-sha256",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "STREAMING-UNSIGNED-PAYLOAD-TRAILER"
}
},
{
- "at": "/query/prefix",
- "optional": true,
+ "at": "/headers/content-encoding",
+ "optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "aws-chunked"
}
},
{
- "at": "/headers/content-type",
- "optional": true,
+ "at": "/headers/x-amz-decoded-content-length",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
+ "is": "equal",
+ "value": "9"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-trailer",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "x-amz-checksum-sha256"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
"encoding": "base64",
- "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48L0xpc3RCdWNrZXRSZXN1bHQ+"
- },
- "framing": "chunked"
+ "data": ""
+ }
}
}
]
@@ -93594,27 +132151,43 @@
}
},
{
- "at": "/value/keys",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": []
+ "value": "\"fixture-636b73750000\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3/list-xml-escaped",
+ "id": "operations/s3/put-with-sha256",
"profile": "s3",
"lane": "core",
- "purpose": "Read XML character references in listed names, such as & and <, or ask for encoding-type=url and decode the names",
+ "purpose": "Send a SHA256 checksum that the caller gives, in x-amz-checksum-sha256",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "op": "list",
- "prefix": ""
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "sha256",
+ "value_base64": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I="
+ },
+ "key": "object-tests/checksums/sha256.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -93626,82 +132199,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
- },
- "body": {
- "encoding": "base64",
- "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PENvbnRlbnRzPjxLZXk+YSZhbXA7YjwvS2V5PjxMYXN0TW9kaWZpZWQ+MjAyNC0wMS0wMVQwMDowMDowMC4wMDBaPC9MYXN0TW9kaWZpZWQ+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48S2V5PmMmbHQ7ZDwvS2V5PjxMYXN0TW9kaWZpZWQ+MjAyNC0wMS0wMVQwMDowMDowMC4wMDBaPC9MYXN0TW9kaWZpZWQ+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjwvTGlzdEJ1Y2tldFJlc3VsdD4="
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -93709,7 +132207,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/checksums/sha256.txt"
}
},
{
@@ -93717,64 +132215,44 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "Y2hlY2tzdW0K"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
"optional": true,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
+ "value": "SHA256"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-checksum-sha256",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I="
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
"encoding": "base64",
- "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48Q29udGVudHM+PEtleT5hJTI2YjwvS2V5PjxMYXN0TW9kaWZpZWQ+MjAyNC0wMS0wMVQwMDowMDowMC4wMDBaPC9MYXN0TW9kaWZpZWQ+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48S2V5PmMlM0NkPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxTaXplPjU8L1NpemU+PFN0b3JhZ2VDbGFzcz5TVEFOREFSRDwvU3RvcmFnZUNsYXNzPjwvQ29udGVudHM+PC9MaXN0QnVja2V0UmVzdWx0Pg=="
- },
- "framing": "chunked"
+ "data": ""
+ }
}
}
]
@@ -93790,13 +132268,21 @@
}
},
{
- "at": "/value/keys",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": [
- "a&b",
- "c\nfixtureobject-tests/names/101000falseobject-tests/names/100%-name.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/a&b.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/back\\slash.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/café.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/ctrl.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/hash#tag.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/percent%20.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/plus+plus.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/q?mark.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/space name.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
},
{
@@ -93888,7 +132378,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -93896,7 +132386,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/checksums/sha1.txt"
}
},
{
@@ -93904,31 +132394,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1zaGExOkxsMnZBZ0hkNndhS1l0WGdqYUdHVjZzc2Eraz0NCg0K"
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "SHA1"
+ }
+ },
+ {
+ "at": "/headers/x-amz-content-sha256",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "STREAMING-UNSIGNED-PAYLOAD-TRAILER"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/content-encoding",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/names/"
+ "value": "aws-chunked"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-decoded-content-length",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "9"
+ }
+ },
+ {
+ "at": "/headers/x-amz-trailer",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "x-amz-checksum-sha1"
}
}
],
@@ -93939,17 +132445,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/names/101000urlfalseobject-tests/names/100%25-name.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/a%26b.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/back%5Cslash.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/caf%C3%A9.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/ctrl%01.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/hash%23tag.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/percent%2520.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/plus%2Bplus.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/q%3Fmark.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/names/space+name.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -93965,498 +132471,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/100%-name.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/a&b.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/back\\slash.txt"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/café.txt"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/4/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/ctrl\u0001.txt"
- }
- },
- {
- "at": "/value/entries/4/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/4/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/5/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/hash#tag.txt"
- }
- },
- {
- "at": "/value/entries/5/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/5/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/5/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/6/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/percent%20.txt"
- }
- },
- {
- "at": "/value/entries/6/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/6/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/6/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/7/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/plus+plus.txt"
- }
- },
- {
- "at": "/value/entries/7/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/7/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/7/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/7/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/7/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/8/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/q?mark.txt"
- }
- },
- {
- "at": "/value/entries/8/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/8/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/8/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-636b73750000\""
}
},
{
- "at": "/value/entries/8/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -94465,55 +132488,115 @@
""
]
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-with-sha1",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Send a SHA1 checksum that the caller gives, in x-amz-checksum-sha1",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ ],
+ "call": {
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "sha1",
+ "value_base64": "Ll2vAgHd6waKYtXgjaGGV6ssa+k="
},
+ "key": "object-tests/checksums/sha1.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/8/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/9/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/space name.txt"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/checksums/sha1.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Y2hlY2tzdW0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "SHA1"
+ }
+ },
+ {
+ "at": "/headers/x-amz-checksum-sha1",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Ll2vAgHd6waKYtXgjaGGV6ssa+k="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/9/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/entries/9/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/9/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-636b73750000\""
}
},
{
- "at": "/value/entries/9/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -94522,57 +132605,25 @@
""
]
}
- },
- {
- "at": "/value/entries/9/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 10
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/s3/list-first-page",
+ "id": "operations/s3/put-computing-crc64nvme",
"profile": "s3",
"lane": "core",
- "purpose": "Send page_size as max-keys, and report a truncated page's NextContinuationToken as the continuation token",
+ "purpose": "Compute the CRC64NVME checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-crc64nvme or in a trailer of an aws-chunked body",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "op": "list_page",
- "page_size": 2,
- "prefix": "object-tests/board/"
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "crc64nvme"
+ },
+ "key": "object-tests/checksums/crc64nvme.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -94584,7 +132635,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -94592,7 +132643,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/checksums/crc64nvme.txt"
}
},
{
@@ -94600,31 +132651,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "Y2hlY2tzdW0K"
}
},
{
- "at": "/query/prefix",
- "optional": false,
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "CRC64NVME"
}
},
{
- "at": "/query/max-keys",
+ "at": "/headers/x-amz-checksum-crc64nvme",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "XGkNQVJiTLw="
}
}
],
@@ -94635,17 +132678,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/e389f71e4c3c=22trueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-a1cfb9bcbc61"CRC64NVMEFULL_OBJECT1STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
},
{
@@ -94655,7 +132698,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -94663,7 +132706,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/checksums/crc64nvme.txt"
}
},
{
@@ -94671,39 +132714,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1jcmM2NG52bWU6WEdrTlFWSmlUTHc9DQoNCg=="
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "CRC64NVME"
+ }
+ },
+ {
+ "at": "/headers/x-amz-content-sha256",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "STREAMING-UNSIGNED-PAYLOAD-TRAILER"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/content-encoding",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "aws-chunked"
}
},
{
- "at": "/query/max-keys",
+ "at": "/headers/x-amz-decoded-content-length",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "9"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-trailer",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "x-amz-checksum-crc64nvme"
}
}
],
@@ -94714,17 +132765,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/e389f71e4c3c=22urltrueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-a1cfb9bcbc61"CRC64NVMEFULL_OBJECT1STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -94740,42 +132791,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/a.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 8
- }
- },
- {
- "at": "/value/entries/0/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-1d83e6eb69df\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-636b73750000\""
}
},
{
- "at": "/value/entries/0/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -94784,55 +132808,115 @@
""
]
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-with-crc64nvme",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Send a CRC64NVME checksum that the caller gives, in x-amz-checksum-crc64nvme",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ ],
+ "call": {
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "crc64nvme",
+ "value_base64": "XGkNQVJiTLw="
},
+ "key": "object-tests/checksums/crc64nvme.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/nested/c.txt"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/checksums/crc64nvme.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Y2hlY2tzdW0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "CRC64NVME"
+ }
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc64nvme",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "XGkNQVJiTLw="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/1/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/entries/1/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-a1cfb9bcbc61\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-636b73750000\""
}
},
{
- "at": "/value/entries/1/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -94841,56 +132925,229 @@
""
]
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-computing-crc32c",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Compute the CRC32C checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-crc32c or in a trailer of an aws-chunked body",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ ],
+ "call": {
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "crc32c"
},
+ "key": "object-tests/checksums/crc32c.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/checksums/crc32c.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Y2hlY2tzdW0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "CRC32C"
+ }
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc32c",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "6dErUA=="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/checksums/crc32c.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1jcmMzMmM6NmRFclVBPT0NCg0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "CRC32C"
+ }
+ },
+ {
+ "at": "/headers/x-amz-content-sha256",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "STREAMING-UNSIGNED-PAYLOAD-TRAILER"
+ }
+ },
+ {
+ "at": "/headers/content-encoding",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aws-chunked"
+ }
+ },
+ {
+ "at": "/headers/x-amz-decoded-content-length",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "9"
+ }
+ },
+ {
+ "at": "/headers/x-amz-trailer",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "x-amz-checksum-crc32c"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries",
+ "at": "/outcome",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 2
+ "is": "equal",
+ "value": "ok"
}
},
{
- "at": "/value/prefixes",
+ "at": "/value/etag",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "\"fixture-636b73750000\""
}
},
{
- "at": "/value/continuation_token",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "fixture-marker+/e389f71e4c3c="
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3/list-buckets",
+ "id": "operations/s3/put-with-crc32c",
"profile": "s3",
"lane": "core",
- "purpose": "List the buckets whose names start with a prefix",
+ "purpose": "Send a CRC32C checksum that the caller gives, in x-amz-checksum-crc32c",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "op": "s3.list_buckets",
- "prefix": "object-tests-listed-"
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "crc32c",
+ "value_base64": "6dErUA=="
+ },
+ "key": "object-tests/checksums/crc32c.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -94902,7 +133159,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -94910,7 +133167,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/fixture/object-tests/checksums/crc32c.txt"
}
},
{
@@ -94918,15 +133175,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "Y2hlY2tzdW0K"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "CRC32C"
+ }
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc32c",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests-listed-"
+ "value": "6dErUA=="
}
}
],
@@ -94937,16 +133202,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixture-ownerobject-tests-listed-a2024-01-01T00:00:00.000Zeu-central-1object-tests-listed-b2024-01-01T00:00:00.000Zeu-central-1object-tests-listed-"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -94962,13 +133228,21 @@
}
},
{
- "at": "/value/buckets",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": [
- "object-tests-listed-a",
- "object-tests-listed-b"
+ "value": "\"fixture-636b73750000\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
]
}
}
@@ -94976,18 +133250,20 @@
"refusal": null
},
{
- "id": "operations/s3/list-service-unavailable",
+ "id": "operations/s3/put-computing-crc32",
"profile": "s3",
"lane": "core",
- "purpose": "Report a 503 ServiceUnavailable answer as an error, after at most 5 retries",
+ "purpose": "Compute the CRC32 checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-crc32 or in a trailer of an aws-chunked body",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
- "origin": "transient",
"call": {
- "op": "list_page",
- "page_size": 2,
- "prefix": "object-tests/board/"
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "crc32"
+ },
+ "key": "object-tests/checksums/crc32.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -94999,7 +133275,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -95007,7 +133283,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/checksums/crc32.txt"
}
},
{
@@ -95015,31 +133291,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "Y2hlY2tzdW0K"
}
},
{
- "at": "/query/prefix",
- "optional": false,
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "CRC32"
}
},
{
- "at": "/query/max-keys",
+ "at": "/headers/x-amz-checksum-crc32",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "ItMTFg=="
}
}
],
@@ -95048,18 +133316,19 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
- "encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
},
{
@@ -95069,7 +133338,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -95077,7 +133346,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/checksums/crc32.txt"
}
},
{
@@ -95085,39 +133354,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1jcmMzMjpJdE1URmc9PQ0KDQo="
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "CRC32"
+ }
+ },
+ {
+ "at": "/headers/x-amz-content-sha256",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "STREAMING-UNSIGNED-PAYLOAD-TRAILER"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/content-encoding",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "aws-chunked"
}
},
{
- "at": "/query/max-keys",
+ "at": "/headers/x-amz-decoded-content-length",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "9"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-trailer",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "x-amz-checksum-crc32"
}
}
],
@@ -95126,22 +133403,79 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
- "encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-636b73750000\""
+ }
},
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-two-checksums",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report S3's refusal of a write with two additional checksums; S3 keeps one checksum per object and answers 400 InvalidRequest to more than one x-amz-checksum- header",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ ],
+ "call": {
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksums": [
+ {
+ "algorithm": "crc32",
+ "value_base64": "ItMTFg=="
+ },
+ {
+ "algorithm": "sha256",
+ "value_base64": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I="
+ }
+ ],
+ "key": "object-tests/checksums/two.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -95151,7 +133485,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -95159,7 +133493,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/checksums/two.txt"
}
},
{
@@ -95167,31 +133501,34 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "Y2hlY2tzdW0K"
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/x-amz-checksum-crc32",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "ItMTFg=="
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-checksum-sha256",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I="
}
},
{
- "at": "/query/max-keys",
- "optional": false,
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "one_of",
+ "values": [
+ "CRC32",
+ "SHA256"
+ ]
}
}
],
@@ -95200,7 +133537,7 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
@@ -95209,11 +133546,102 @@
},
"body": {
"encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ "data": "\nInvalidRequestExpecting a single x-amz-checksum- header. Multiple checksum Types are not allowed.fixturefixture"
},
"framing": "chunked"
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidRequest"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "checksums"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidRequest"
+ }
+ }
+ ]
+ },
+ {
+ "id": "operations/s3/put-with-tags",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Write an object with tags",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ ],
+ "call": {
+ "body_base64": "Zmlyc3Q=",
+ "key": "object-tests/tags/object.txt",
+ "op": "put",
+ "tags": {
+ "project": "object-tests"
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -95221,7 +133649,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -95229,7 +133657,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
@@ -95237,39 +133665,102 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "Zmlyc3Q="
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/x-amz-tagging",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "project=object-tests"
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-with-tags-special-characters",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Write an object with a tag that holds a space and each of + - = . _ : / @, percent-encoded in x-amz-tagging, so that S3 reads + as a plus and not a space",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ ],
+ "call": {
+ "body_base64": "Zmlyc3Q=",
+ "key": "object-tests/tags/object.txt",
+ "op": "put",
+ "tags": {
+ "a b+c-d=e.f_g:h/i@j": "k l+m-n=o.p_q:r/s@t"
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
{
- "at": "/query/prefix",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "PUT"
}
},
{
- "at": "/query/max-keys",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "Zmlyc3Q="
+ }
+ },
+ {
+ "at": "/headers/x-amz-tagging",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "a%20b%2Bc-d%3De.f_g%3Ah%2Fi%40j=k%20l%2Bm-n%3Do.p_q%3Ar%2Fs%40t"
}
}
],
@@ -95278,23 +133769,58 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
- ],
- "optional": true
- },
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-with-tags-duplicate-key",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report a write whose x-amz-tagging names one key twice as an error. A client may refuse it, or report it unsupported where its API cannot repeat a key",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ ],
+ "call": {
+ "body_base64": "Zmlyc3Q=",
+ "key": "object-tests/tags/object.txt",
+ "op": "put",
+ "tags": [
+ {
+ "key": "project",
+ "value": "a"
+ },
+ {
+ "key": "project",
+ "value": "b"
+ }
+ ]
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -95304,7 +133830,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -95312,7 +133838,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
@@ -95320,31 +133846,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "value": "Zmlyc3Q="
}
},
{
- "at": "/query/max-keys",
+ "at": "/headers/x-amz-tagging",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "project=a&project=b"
}
}
],
@@ -95353,7 +133863,7 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
@@ -95362,11 +133872,99 @@
},
"body": {
"encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ "data": "\nInvalidArgumentFixture error"
},
"framing": "chunked"
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidArgument"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidArgument"
+ }
+ }
+ ],
+ "decline_permitted": true
+ },
+ {
+ "id": "operations/s3/get-tagging",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Read the tags of an object",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html"
+ ],
+ "call": {
+ "key": "object-tests/tags/object.txt",
+ "op": "s3.get_tagging"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -95382,7 +133980,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
@@ -95394,35 +133992,11 @@
}
},
{
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/encoding-type",
+ "at": "/query/tagging",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": ""
}
}
],
@@ -95431,7 +134005,7 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
@@ -95440,14 +134014,49 @@
},
"body": {
"encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ "data": "\nprojectobject-tests"
},
"framing": "chunked"
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
},
+ {
+ "at": "/value/tags",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "project": "object-tests"
+ }
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/get-tagging-none",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report no tags for an object without any, which S3 answers with an empty TagSet",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html"
+ ],
+ "call": {
+ "key": "object-tests/tags/object.txt",
+ "op": "s3.get_tagging"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -95465,7 +134074,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
@@ -95477,27 +134086,11 @@
}
},
{
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
+ "at": "/query/tagging",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": ""
}
}
],
@@ -95506,7 +134099,7 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
@@ -95515,11 +134108,52 @@
},
"body": {
"encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ "data": "\n"
},
"framing": "chunked"
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/tags",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {}
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-tagging",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Replace the tags of an object",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html"
+ ],
+ "call": {
+ "key": "object-tests/tags/object.txt",
+ "op": "s3.put_tagging",
+ "tags": {
+ "project": "object-tests"
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -95527,7 +134161,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -95535,47 +134169,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/query/list-type",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "xml",
+ "value": "projectobject-tests"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/tagging",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": ""
}
},
{
- "at": "/query/max-keys",
+ "at": "/headers/x-amz-checksum-crc64nvme",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
}
},
{
- "at": "/query/encoding-type",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "url"
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
}
}
],
@@ -95584,23 +134211,57 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
}
},
"body": {
- "encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
- ],
- "optional": true
- },
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-tagging-10-tags",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Set 10 tags, the most an object takes",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html"
+ ],
+ "call": {
+ "key": "object-tests/tags/object.txt",
+ "op": "s3.put_tagging",
+ "tags": {
+ "tag00": "value0",
+ "tag01": "value1",
+ "tag02": "value2",
+ "tag03": "value3",
+ "tag04": "value4",
+ "tag05": "value5",
+ "tag06": "value6",
+ "tag07": "value7",
+ "tag08": "value8",
+ "tag09": "value9"
+ }
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -95610,7 +134271,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -95618,39 +134279,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "tag00value0tag01value1tag02value2tag03value3tag04value4tag05value5tag06value6tag07value7tag08value8tag09value9"
}
},
{
- "at": "/query/list-type",
+ "at": "/query/tagging",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": ""
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-checksum-crc64nvme",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
}
},
{
- "at": "/query/max-keys",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
}
}
],
@@ -95659,20 +134321,60 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
}
},
"body": {
- "encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-tagging-11-tags",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report 11 tags, one more than an object takes, as an error. A client may refuse them",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html"
+ ],
+ "call": {
+ "key": "object-tests/tags/object.txt",
+ "op": "s3.put_tagging",
+ "tags": {
+ "tag00": "value0",
+ "tag01": "value1",
+ "tag02": "value2",
+ "tag03": "value3",
+ "tag04": "value4",
+ "tag05": "value5",
+ "tag06": "value6",
+ "tag07": "value7",
+ "tag08": "value8",
+ "tag09": "value9",
+ "tag10": "value10"
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -95680,7 +134382,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -95688,47 +134390,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/query/list-type",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "xml",
+ "value": "tag00value0tag01value1tag02value2tag03value3tag04value4tag05value5tag06value6tag07value7tag08value8tag09value9tag10value10"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/tagging",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": ""
}
},
{
- "at": "/query/max-keys",
+ "at": "/headers/x-amz-checksum-crc64nvme",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
}
},
{
- "at": "/query/encoding-type",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "url"
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
}
}
],
@@ -95737,7 +134432,7 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
@@ -95746,14 +134441,99 @@
},
"body": {
"encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ "data": "\nBadRequestFixture error"
},
"framing": "chunked"
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BadRequest"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
},
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "BadRequest"
+ }
+ }
+ ]
+ },
+ {
+ "id": "operations/s3/put-tagging-key-128",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Set a tag whose key has 128 characters, the longest a key may be",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html"
+ ],
+ "call": {
+ "key": "object-tests/tags/object.txt",
+ "op": "s3.put_tagging",
+ "tags": {
+ "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk": "v"
+ }
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -95763,7 +134543,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -95771,39 +134551,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkv"
}
},
{
- "at": "/query/list-type",
+ "at": "/query/tagging",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": ""
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-checksum-crc64nvme",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
}
},
{
- "at": "/query/max-keys",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
}
}
],
@@ -95812,20 +134593,50 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
}
},
"body": {
- "encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-tagging-key-129",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report a tag key of 129 characters, one more than a key may have, as an error. A client may refuse it",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html"
+ ],
+ "call": {
+ "key": "object-tests/tags/object.txt",
+ "op": "s3.put_tagging",
+ "tags": {
+ "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk": "v"
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -95833,7 +134644,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -95841,47 +134652,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/query/list-type",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "xml",
+ "value": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkv"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/tagging",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": ""
}
},
{
- "at": "/query/max-keys",
+ "at": "/headers/x-amz-checksum-crc64nvme",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
}
},
{
- "at": "/query/encoding-type",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "url"
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
}
}
],
@@ -95890,7 +134694,7 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
@@ -95899,13 +134703,12 @@
},
"body": {
"encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ "data": "\nInvalidTagFixture error"
},
"framing": "chunked"
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -95922,7 +134725,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 503
+ "value": 400
}
},
{
@@ -95930,24 +134733,67 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ServiceUnavailable"
+ "value": "InvalidTag"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "tags"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidTag"
+ }
+ }
+ ]
},
{
- "id": "operations/s3/list-key-equal-to-prefix-delimited",
+ "id": "operations/s3/put-tagging-value-256",
"profile": "s3",
"lane": "core",
- "purpose": "Report a key that equals the prefix as an entry, and the keys under it as a common prefix",
+ "purpose": "Set a tag whose value has 256 characters, the longest a value may be",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html"
],
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/exact"
+ "key": "object-tests/tags/object.txt",
+ "op": "s3.put_tagging",
+ "tags": {
+ "k": "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv"
+ }
},
"exchanges": [
{
@@ -95959,7 +134805,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -95967,39 +134813,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "kvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv"
}
},
{
- "at": "/query/list-type",
+ "at": "/query/tagging",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": ""
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-checksum-crc64nvme",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/exact"
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
}
},
{
- "at": "/query/delimiter",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "/"
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
}
}
],
@@ -96010,19 +134857,48 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/exact21000/falseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-tagging-value-257",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report a tag value of 257 characters, one more than a value may have, as an error. A client may refuse it",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html"
+ ],
+ "call": {
+ "key": "object-tests/tags/object.txt",
+ "op": "s3.put_tagging",
+ "tags": {
+ "k": "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv"
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -96030,7 +134906,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -96038,47 +134914,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/query/list-type",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "xml",
+ "value": "kvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/tagging",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/exact"
+ "value": ""
}
},
{
- "at": "/query/delimiter",
+ "at": "/headers/x-amz-checksum-crc64nvme",
"optional": false,
"rule": {
- "is": "equal",
- "value": "/"
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
}
},
{
- "at": "/query/encoding-type",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "url"
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
}
}
],
@@ -96087,17 +134956,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/exact21000/urlfalseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/"
+ "data": "\nInvalidTagFixture error"
},
"framing": "chunked"
}
@@ -96111,112 +134979,83 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/entries/0/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/exact"
+ "value": 400
}
},
{
- "at": "/value/entries/0/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "InvalidTag"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/0/etag",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "refused"
}
},
{
- "at": "/value/entries",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 1
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/prefixes/0",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/exact/"
+ "value": "tags"
}
},
{
- "at": "/value/prefixes",
- "optional": false,
+ "at": "/status",
+ "optional": true,
"rule": {
- "is": "array_length",
- "value": 1
+ "is": "equal",
+ "value": 400
}
},
{
- "at": "/value/continuation_token",
- "optional": false,
+ "at": "/code",
+ "optional": true,
"rule": {
"is": "equal",
- "value": ""
+ "value": "InvalidTag"
}
}
- ],
- "refusal": null
+ ]
},
{
- "id": "operations/s3/list-key-equal-to-prefix",
+ "id": "operations/s3/put-tagging-special-characters",
"profile": "s3",
"lane": "core",
- "purpose": "Report a key that equals the prefix as an entry",
+ "purpose": "Set a tag with a space and each of + - = . _ : / @, which S3 allows, escaped as XML text",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/exact"
+ "key": "object-tests/tags/object.txt",
+ "op": "s3.put_tagging",
+ "tags": {
+ "a b+c-d=e.f_g:h/i@j": "k l+m-n=o.p_q:r/s@t"
+ }
},
"exchanges": [
{
@@ -96228,7 +135067,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -96236,11 +135075,19 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "a b+c-d=e.f_g:h/i@jk l+m-n=o.p_q:r/s@t"
+ }
+ },
+ {
+ "at": "/query/tagging",
"optional": false,
"rule": {
"is": "equal",
@@ -96248,19 +135095,20 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/x-amz-checksum-crc64nvme",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
}
},
{
- "at": "/query/prefix",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/exact"
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
}
}
],
@@ -96271,19 +135119,48 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/exact21000falseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/child2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-tagging-invalid-character",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report a tag key with !, which S3 does not allow, as an error. A client may refuse it",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html"
+ ],
+ "call": {
+ "key": "object-tests/tags/object.txt",
+ "op": "s3.put_tagging",
+ "tags": {
+ "a!b": "c"
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -96291,7 +135168,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -96299,39 +135176,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/tags/object.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "a!bc"
}
},
{
- "at": "/query/list-type",
+ "at": "/query/tagging",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": ""
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-checksum-crc64nvme",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/exact"
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
}
},
{
- "at": "/query/encoding-type",
+ "at": "",
"optional": false,
"rule": {
- "is": "equal",
- "value": "url"
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
}
}
],
@@ -96340,17 +135218,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/exact21000urlfalseobject-tests/exact2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/exact/child2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
+ "data": "\nInvalidTagFixture error"
},
"framing": "chunked"
}
@@ -96364,162 +135241,251 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/entries/0/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/exact"
+ "value": 400
}
},
{
- "at": "/value/entries/0/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "InvalidTag"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/0/etag",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
+ "value": "refused"
}
},
{
- "at": "/value/entries/0/snapshot",
- "optional": true,
+ "at": "/kind",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/entries/0/version",
- "optional": true,
+ "at": "/parameter",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "tags"
}
},
{
- "at": "/value/entries/0/is_current_version",
+ "at": "/status",
"optional": true,
"rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "is": "equal",
+ "value": 400
}
},
{
- "at": "/value/entries/1/key",
- "optional": false,
+ "at": "/code",
+ "optional": true,
"rule": {
"is": "equal",
- "value": "object-tests/exact/child"
+ "value": "InvalidTag"
}
- },
+ }
+ ]
+ },
+ {
+ "id": "operations/s3/put-tagging-duplicate-key",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report a tag set that names one key twice as an error. A client may refuse it, or report it unsupported where its API cannot repeat a key",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html"
+ ],
+ "call": {
+ "key": "object-tests/tags/object.txt",
+ "op": "s3.put_tagging",
+ "tags": [
+ {
+ "key": "project",
+ "value": "a"
+ },
+ {
+ "key": "project",
+ "value": "b"
+ }
+ ]
+ },
+ "exchanges": [
{
- "at": "/value/entries/1/size",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/tags/object.txt"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "projectaprojectb"
+ }
+ },
+ {
+ "at": "/query/tagging",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc64nvme",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInvalidTagFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "error"
}
},
{
- "at": "/value/entries/1/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": 400
}
},
{
- "at": "/value/entries/1/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "InvalidTag"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/1/is_current_version",
- "optional": true,
+ "at": "/outcome",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "is": "equal",
+ "value": "refused"
}
},
{
- "at": "/value/entries",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 2
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/prefixes",
+ "at": "/parameter",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "tags"
}
},
{
- "at": "/value/continuation_token",
- "optional": false,
+ "at": "/status",
+ "optional": true,
"rule": {
"is": "equal",
- "value": ""
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidTag"
}
}
],
- "refusal": null
+ "decline_permitted": true
},
{
- "id": "operations/s3/list-max-keys-zero",
+ "id": "operations/s3/put-internal-error",
"profile": "s3",
"lane": "core",
- "purpose": "Send page_size 0 as max-keys=0; S3 answers an empty page that is not truncated",
+ "purpose": "Report a 500 InternalError answer as an error, after at most 5 retries",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
],
+ "origin": "transient",
"call": {
- "op": "list_page",
- "page_size": 0,
- "prefix": "object-tests/board/"
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -96531,7 +135497,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -96539,7 +135505,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -96547,31 +135513,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "0"
+ "value": "MDEyMzQ1Njc4OQ=="
}
}
],
@@ -96580,21 +135522,24 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 500,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/00false"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
},
"framing": "chunked"
}
- },
+ }
+ ]
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -96602,7 +135547,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -96610,7 +135555,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -96618,39 +135563,58 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 500,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
}
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ },
+ "framing": "chunked"
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
{
- "at": "/query/prefix",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "PUT"
}
},
{
- "at": "/query/max-keys",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "0"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "MDEyMzQ1Njc4OQ=="
}
}
],
@@ -96659,75 +135623,23 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 500,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/00urlfalse"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
+ ],
+ "optional": true
},
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/list-next-page",
- "profile": "s3",
- "lane": "core",
- "purpose": "Send the continuation token as continuation-token, a + in it as %2B, and report an empty token for the last page",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "continuation_token": "fixture-marker+/e389f71e4c3c=",
- "op": "list_page",
- "page_size": 2,
- "prefix": "object-tests/board/"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -96737,7 +135649,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -96745,7 +135657,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -96753,39 +135665,58 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 500,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
}
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ },
+ "framing": "chunked"
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
{
- "at": "/query/prefix",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "PUT"
}
},
{
- "at": "/query/max-keys",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
- "at": "/query/continuation-token",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-marker+/e389f71e4c3c="
+ "value": "MDEyMzQ1Njc4OQ=="
}
}
],
@@ -96794,21 +135725,25 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 500,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/e389f71e4c3c=12falseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
},
"framing": "chunked"
}
- },
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -96816,7 +135751,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -96824,7 +135759,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -96832,47 +135767,110 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 500,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
}
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ },
+ "framing": "chunked"
+ }
+ }
+ ],
+ "optional": true
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 500
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InternalError"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-content-encoding-gzip",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA",
+ "content_encoding": "gzip",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
{
- "at": "/query/prefix",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "PUT"
}
},
{
- "at": "/query/max-keys",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
- "at": "/query/continuation-token",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-marker+/e389f71e4c3c="
+ "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/content-encoding",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "gzip"
}
}
],
@@ -96883,17 +135881,16 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-fbe0ab688a03\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/1Wq36E269xkU5vpIr/uygMR7VLsOKyVtFFrZWipPwts7vqVlbsEy3gO3B+OwtpoKO55bImoZ/vlKYSYk9sDrkkYTFp1MK3Yy/pV5VyzD7p/s=12urlfalseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -96909,42 +135906,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/z.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/0/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-4d347fee6a7b\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-fbe0ab688a03\""
}
},
{
- "at": "/value/entries/0/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -96953,57 +135923,26 @@
""
]
}
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/s3/list-order-delimited",
+ "id": "operations/s3/put-content-properties",
"profile": "s3",
"lane": "core",
- "purpose": "Report the entries and the common prefixes in the order S3 sends them, each list on its own",
+ "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/order/"
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "cache_control": "max-age=3600",
+ "content_disposition": "attachment; filename=\"report.txt\"",
+ "content_language": "nl-NL",
+ "content_type": "text/plain; charset=utf-8",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -97015,7 +135954,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -97023,7 +135962,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -97031,31 +135970,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "text/plain; charset=utf-8"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/content-language",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/"
+ "value": "nl-NL"
}
},
{
- "at": "/query/delimiter",
+ "at": "/headers/content-disposition",
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "attachment; filename=\"report.txt\""
+ }
+ },
+ {
+ "at": "/headers/cache-control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
}
}
],
@@ -97066,19 +136013,69 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-fbe0ab688a03\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/order/81000/falseobject-tests/order/A2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a-b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a02024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/é2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a/"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-fbe0ab688a03\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-content-type-non-ascii",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Write a Content-Type with a parameter outside ASCII as its UTF-8 bytes. A general-purpose bucket returns header bytes as it got them, so they read back",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "content_type": "text/plain; name=\"été.txt\"",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -97086,7 +136083,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -97094,7 +136091,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -97102,39 +136099,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/"
- }
- },
- {
- "at": "/query/delimiter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "text/plain; name=\"été.txt\""
}
}
],
@@ -97145,17 +136118,16 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-fbe0ab688a03\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/order/81000/urlfalseobject-tests/order/A2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a-b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a02024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/%C3%A92024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a/"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -97171,450 +136143,40 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/A"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a-b"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a.txt"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/4/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a0"
- }
- },
- {
- "at": "/value/entries/4/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/4/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/5/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/b"
- }
- },
- {
- "at": "/value/entries/5/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/5/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/5/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/6/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/é"
- }
- },
- {
- "at": "/value/entries/6/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/6/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/6/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 7
- }
- },
- {
- "at": "/value/prefixes/0",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/a/"
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
+ "value": "\"fixture-fbe0ab688a03\""
}
},
{
- "at": "/value/continuation_token",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3/list-order",
+ "id": "operations/s3/put-content-disposition-non-ascii",
"profile": "s3",
"lane": "core",
- "purpose": "Report the entries in the order S3 sends them, without sorting them again",
+ "purpose": "Write a Content-Disposition whose filename is outside ASCII. A general-purpose bucket returns header bytes as it got them, so the UTF-8 bytes read back; an RFC 6266 filename* is stored as written, and any reader decodes it",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/order/"
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "content_disposition": "attachment; filename=\"été.txt\"",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -97626,7 +136188,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -97634,7 +136196,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -97642,23 +136204,18 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/content-disposition",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/order/"
+ "is": "one_of",
+ "values": [
+ "attachment; filename=\"été.txt\"",
+ "attachment; filename*=UTF-8''%C3%A9t%C3%A9.txt"
+ ]
}
}
],
@@ -97669,19 +136226,69 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-fbe0ab688a03\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/order/81000falseobject-tests/order/A2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a-b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a/b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a02024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/é2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-fbe0ab688a03\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-if-unmodified-since-past",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report a write with If-Unmodified-Since as an error. S3 takes no date condition on a PutObject and answers 501 NotImplemented. A client may refuse it before sending",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -97689,7 +136296,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -97697,7 +136304,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -97705,31 +136312,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/"
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/if-unmodified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
}
}
],
@@ -97738,17 +136329,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 501,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/order/81000urlfalseobject-tests/order/A2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a-b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a.txt2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a/b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/a02024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/b2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/order/%C3%A92024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
+ "data": "\nNotImplementedFixture error"
},
"framing": "chunked"
}
@@ -97762,92 +136352,162 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/entries/0/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/A"
+ "value": 501
}
},
{
- "at": "/value/entries/0/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "NotImplemented"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/0/etag",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
+ "value": "refused"
}
},
{
- "at": "/value/entries/0/snapshot",
- "optional": true,
+ "at": "/kind",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/entries/0/version",
- "optional": true,
+ "at": "/parameter",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "if_unmodified_since"
}
},
{
- "at": "/value/entries/0/is_current_version",
+ "at": "/status",
"optional": true,
"rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "is": "equal",
+ "value": 501
}
},
{
- "at": "/value/entries/1/key",
- "optional": false,
+ "at": "/code",
+ "optional": true,
"rule": {
"is": "equal",
- "value": "object-tests/order/a"
+ "value": "NotImplemented"
}
- },
+ }
+ ]
+ },
+ {
+ "id": "operations/s3/put-content-type-edge-spaces",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Write a content type with spaces at either end, which HTTP drops, so the service stores it trimmed. A client may refuse it",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "content_type": " text/plain ",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/1/size",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-fbe0ab688a03\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/entries/1/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
+ "value": "\"fixture-fbe0ab688a03\""
}
},
{
- "at": "/value/entries/1/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -97856,66 +136516,128 @@
""
]
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/1/version",
- "optional": true,
+ "at": "/outcome",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "refused"
}
},
{
- "at": "/value/entries/1/is_current_version",
- "optional": true,
+ "at": "/kind",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/entries/2/key",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/a-b"
+ "value": "content_type"
}
- },
+ }
+ ]
+ },
+ {
+ "id": "operations/s3/put-if-match-current",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put if match current",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "cmVwbGFjZWQ=",
+ "if_match": "\"fixture-fbe0ab688a03\"",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/2/size",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "cmVwbGFjZWQ="
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-fbe0ab688a03\""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-01da46aa1994\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/entries/2/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-01da46aa1994\""
}
},
{
- "at": "/value/entries/2/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -97924,55 +136646,103 @@
""
]
}
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-if-none-match-missing",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put if none match missing",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "ZnJlc2g=",
+ "if_none_match": "*",
+ "key": "object-tests/write/fresh.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a.txt"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/fresh.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ZnJlc2g="
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "*"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-891ed8521bb8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/3/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/entries/3/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-891ed8521bb8\""
}
},
{
- "at": "/value/entries/3/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -97981,36 +136751,86 @@
""
]
}
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-key-1024",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put key 1024",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/4/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a/b"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/4/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/entries/4/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
@@ -98018,18 +136838,7 @@
}
},
{
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -98038,229 +136847,379 @@
""
]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-key-1025",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put key 1025",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/4/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nKeyTooLongErrorFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/5/key",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/a0"
+ "value": "error"
}
},
{
- "at": "/value/entries/5/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 400
}
},
{
- "at": "/value/entries/5/etag",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/5/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "KeyTooLongError"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/6/key",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/b"
+ "value": "refused"
}
},
{
- "at": "/value/entries/6/size",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": 1
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/entries/6/etag",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
+ "value": "key"
}
},
{
- "at": "/value/entries/6/snapshot",
+ "at": "/status",
"optional": true,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 400
}
},
{
- "at": "/value/entries/6/version",
+ "at": "/code",
"optional": true,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "KeyTooLongError"
}
- },
+ }
+ ]
+ },
+ {
+ "id": "operations/s3/put-lost-the-race-to-create",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put lost the race to create",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "YW5vdGhlciBvYmplY3Q=",
+ "if_none_match": "*",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/6/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YW5vdGhlciBvYmplY3Q="
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "*"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/7/key",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/é"
+ "value": "error"
}
},
{
- "at": "/value/entries/7/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 412
}
},
{
- "at": "/value/entries/7/etag",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/7/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/7/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/7/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "PreconditionFailed"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-conditional-conflict",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report a 409 ConditionalRequestConflict to a conditional put as an error. AWS advises retrying a put, so a client may retry up to 5 times first, and need not retry",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "origin": "transient",
+ "call": {
+ "body_base64": "YW5vdGhlciBvYmplY3Q=",
+ "if_none_match": "*",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 8
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YW5vdGhlciBvYmplY3Q="
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "*"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
},
{
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YW5vdGhlciBvYmplY3Q="
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "*"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ }
+ ],
+ "optional": true
},
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/list-page",
- "profile": "s3",
- "lane": "core",
- "purpose": "List a prefix with ListObjectsV2 (list-type=2), and report each entry's key, size and ETag, quotes included",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "op": "list_page",
- "prefix": "object-tests/board/"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -98270,7 +137229,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -98278,7 +137237,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -98286,23 +137245,74 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "YW5vdGhlciBvYmplY3Q="
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "*"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
}
},
{
- "at": "/query/prefix",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YW5vdGhlciBvYmplY3Q="
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "*"
}
}
],
@@ -98311,21 +137321,25 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 409,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/31000falseobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-a1cfb9bcbc61"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD"
+ "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
},
"framing": "chunked"
}
- },
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -98333,7 +137347,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -98341,7 +137355,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/write/object.txt"
}
},
{
@@ -98349,31 +137363,74 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "YW5vdGhlciBvYmplY3Q="
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "*"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 409,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
}
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
{
- "at": "/query/prefix",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "PUT"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YW5vdGhlciBvYmplY3Q="
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "*"
}
}
],
@@ -98382,22 +137439,22 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 409,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/31000urlfalseobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-a1cfb9bcbc61"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD"
+ "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
},
"framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -98406,46 +137463,123 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/entries/0/key",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/a.txt"
+ "value": 409
}
},
{
- "at": "/value/entries/0/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 8
+ "value": "ConditionalRequestConflict"
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-metadata-empty-value",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put metadata empty value",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/empty-value.txt",
+ "metadata": {
+ "empty": ""
},
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/0/etag",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/empty-value.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-amz-meta-empty",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-1d83e6eb69df\""
+ "value": "ok"
}
},
{
- "at": "/value/entries/0/snapshot",
- "optional": true,
+ "at": "/value/etag",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/entries/0/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -98454,44 +137588,105 @@
""
]
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-metadata-hyphen-name",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put metadata hyphen name",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/hyphen-name.txt",
+ "metadata": {
+ "not-valid": "1"
},
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/nested/c.txt"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/hyphen-name.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-amz-meta-not-valid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/1/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/entries/1/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-a1cfb9bcbc61\""
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/entries/1/snapshot",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -98500,124 +137695,252 @@
""
]
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-metadata-names-differ-in-case",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "S3 matches a metadata name without case. A general-purpose bucket merges two names that differ only in case into one pair, dup: one,two, which does not read back as sent, so refuse the call.",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/names-differ-in-case.txt",
+ "metadata": {
+ "DUP": "two",
+ "dup": "one"
},
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/names-differ-in-case.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-amz-meta-dup",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ [
+ "one",
+ "two"
+ ],
+ [
+ "two",
+ "one"
+ ]
+ ]
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/1/is_current_version",
- "optional": true,
+ "at": "/outcome",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "is": "equal",
+ "value": "refused"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/2/key",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/z.txt"
+ "value": "refused"
}
},
{
- "at": "/value/entries/2/size",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": 2
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/entries/2/etag",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-4d347fee6a7b\""
+ "value": "metadata"
}
+ }
+ ]
+ },
+ {
+ "id": "operations/s3/put-metadata-punctuation-name",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "S3 stores a name that holds any character of an HTTP token, and one that starts with a digit.",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/punctuation-name.txt",
+ "metadata": {
+ "1a!#$%&'*+.^_`|~b": "1"
},
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/2/snapshot",
- "optional": true,
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/punctuation-name.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-amz-meta-1a!#$%&'*+.^_`|~0b",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "ok"
}
},
{
- "at": "/value/entries/2/version",
- "optional": true,
+ "at": "/value/etag",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/entries/2/is_current_version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
"values": [
null,
- false
+ ""
]
}
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 3
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/s3/list-prefix-without-slash",
+ "id": "operations/s3/put-metadata-replaced",
"profile": "s3",
"lane": "core",
- "purpose": "Match the prefix as the start of the key, not as a directory: object-tests/boa matches object-tests/board/",
+ "purpose": "put metadata replaced",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/boa"
+ "body_base64": "Mg==",
+ "key": "object-tests/metadata/replaced.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -98629,7 +137952,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -98637,7 +137960,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/metadata/replaced.txt"
}
},
{
@@ -98645,23 +137968,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/boa"
+ "value": "Mg=="
}
}
],
@@ -98672,19 +137979,72 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-ea4c238956b1\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/boa31000falseobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-a1cfb9bcbc61"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ea4c238956b1\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-metadata",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put metadata",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/object.txt",
+ "metadata": {
+ "name": "value",
+ "second": "2"
+ },
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -98692,7 +138052,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -98700,7 +138060,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/metadata/object.txt"
}
},
{
@@ -98708,31 +138068,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "MQ=="
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-meta-name",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/boa"
+ "value": "value"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-meta-second",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "2"
}
}
],
@@ -98743,17 +138095,16 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/boa31000urlfalseobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-1d83e6eb69df"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-a1cfb9bcbc61"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-4d347fee6a7b"CRC64NVMEFULL_OBJECT2STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -98769,42 +138120,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/a.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 8
- }
- },
- {
- "at": "/value/entries/0/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-1d83e6eb69df\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/entries/0/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -98813,55 +138137,94 @@
""
]
}
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-overwrite",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put overwrite",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "b3ZlcndyaXR0ZW4=",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/nested/c.txt"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "b3ZlcndyaXR0ZW4="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-a62b555324ac\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/1/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "ok"
}
},
{
- "at": "/value/entries/1/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-a1cfb9bcbc61\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-a62b555324ac\""
}
},
{
- "at": "/value/entries/1/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -98870,114 +138233,219 @@
""
]
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-precondition-failed",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "put precondition failed",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "YW5vdGhlciBvYmplY3Q=",
+ "if_match": "\"fixture-db71b2c0257c\"",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YW5vdGhlciBvYmplY3Q="
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-db71b2c0257c\""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/2/key",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/z.txt"
+ "value": "error"
}
},
{
- "at": "/value/entries/2/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 2
+ "value": 412
}
},
{
- "at": "/value/entries/2/etag",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-4d347fee6a7b\""
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "PreconditionFailed"
}
- },
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-unauthenticated",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/write/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bm90aGluZyBpcyBzdG9yZWQ="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 403,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInvalidAccessKeyIdFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries",
+ "at": "/outcome",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 3
+ "is": "equal",
+ "value": "error"
}
},
{
- "at": "/value/prefixes",
+ "at": "/status",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": 403
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "InvalidAccessKeyId"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/list-separator-keys-delimited",
+ "id": "operations/s3/stage-after-abort",
"profile": "s3",
"lane": "core",
- "purpose": "Group each key at the first delimiter after the prefix, even where the key repeats it or ends with it",
+ "purpose": "stage after abort",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/separators/"
+ "body_base64": "eA==",
+ "key": "object-tests/multipart/aborted.bin",
+ "op": "s3.upload_part",
+ "part_number": 2,
+ "upload_id": "fixture-upload+/f85cf0cd3a3f="
},
"exchanges": [
{
@@ -98989,7 +138457,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -98997,7 +138465,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/aborted.bin"
}
},
{
@@ -99005,11 +138473,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "eA=="
}
},
{
- "at": "/query/list-type",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
@@ -99017,19 +138485,11 @@
}
},
{
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/"
- }
- },
- {
- "at": "/query/delimiter",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "fixture-upload+/f85cf0cd3a3f="
}
}
],
@@ -99038,21 +138498,69 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/separators/61000/falseobject-tests/separators/..leading2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/dot.2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/a.b/object-tests/separators/double/object-tests/separators/space /object-tests/separators/trailing/"
+ "data": "\nNoSuchUploadFixture error"
},
"framing": "chunked"
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "NoSuchUpload"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/stage-last",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "stage last",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part",
+ "part_number": 2,
+ "upload_id": "fixture-upload+/276ca18046f9="
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -99060,7 +138568,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -99068,7 +138576,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -99076,11 +138584,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
}
},
{
- "at": "/query/list-type",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
@@ -99088,27 +138596,11 @@
}
},
{
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/"
- }
- },
- {
- "at": "/query/delimiter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/query/encoding-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -99119,17 +138611,16 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-32b70ae425ac\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/separators/61000/urlfalseobject-tests/separators/..leading2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/dot.2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/a.b/object-tests/separators/double/object-tests/separators/space+/object-tests/separators/trailing/"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -99145,189 +138636,30 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/..leading"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/dot."
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- },
- {
- "at": "/value/prefixes/0",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/a.b/"
- }
- },
- {
- "at": "/value/prefixes/1",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/double/"
- }
- },
- {
- "at": "/value/prefixes/2",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/space /"
- }
- },
- {
- "at": "/value/prefixes/3",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/trailing/"
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 4
- }
- },
- {
- "at": "/value/continuation_token",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "\"fixture-32b70ae425ac\""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/list-separator-keys",
+ "id": "operations/s3/stage-part-10000",
"profile": "s3",
"lane": "core",
- "purpose": "Report keys with leading dots, repeated slashes, a space and a trailing slash exactly as stored",
+ "purpose": "Part numbers run from 1 to 10,000. Stage part 10,000; only 0 and 10,001 may be refused.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/separators/"
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part",
+ "part_number": 10000,
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -99339,7 +138671,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -99347,7 +138679,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -99355,23 +138687,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "c2Vjb25k"
}
},
{
- "at": "/query/list-type",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "10000"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/separators/"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -99382,19 +138714,59 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-32b70ae425ac\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/separators/61000falseobject-tests/separators/..leading2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/a.b/c2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/dot.2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/double//slash2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/space /x2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/trailing/2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-32b70ae425ac\""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/stage-part-10001",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "stage part 10001",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "eA==",
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part",
+ "part_number": 10001,
+ "upload_id": "fixture-upload+/276ca18046f9="
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -99402,7 +138774,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -99410,7 +138782,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -99418,31 +138790,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "eA=="
}
},
{
- "at": "/query/prefix",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/separators/"
+ "value": "10001"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -99451,17 +138815,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/separators/61000urlfalseobject-tests/separators/..leading2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/a.b/c2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/dot.2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/double//slash2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/space+/x2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/separators/trailing/2024-01-01T00:00:00.000Z"fixture-6c30b210f0a8"CRC64NVMEFULL_OBJECT1STANDARD"
+ "data": "\nInvalidArgumentFixture error"
},
"framing": "chunked"
}
@@ -99475,389 +138838,83 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/..leading"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/a.b/c"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/dot."
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/double//slash"
+ "value": "error"
}
},
{
- "at": "/value/entries/3/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 400
}
},
{
- "at": "/value/entries/3/etag",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": "InvalidArgument"
}
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/4/key",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/separators/space /x"
+ "value": "refused"
}
},
{
- "at": "/value/entries/4/size",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "equal",
- "value": 1
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/entries/4/etag",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "part_number"
}
},
{
- "at": "/value/entries/4/is_current_version",
+ "at": "/status",
"optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/5/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/trailing/"
- }
- },
- {
- "at": "/value/entries/5/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/5/etag",
- "optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/entries/5/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": 400
}
},
{
- "at": "/value/entries/5/is_current_version",
+ "at": "/code",
"optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 6
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "InvalidArgument"
}
}
- ],
- "refusal": null
+ ]
},
{
- "id": "operations/s3/list-unauthenticated",
+ "id": "operations/s3/stage-part-zero",
"profile": "s3",
"lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "purpose": "stage part zero",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/"
+ "body_base64": "eA==",
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part",
+ "part_number": 0,
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -99869,7 +138926,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -99877,7 +138934,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -99885,23 +138942,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "eA=="
}
},
{
- "at": "/query/list-type",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "0"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -99910,7 +138967,7 @@
],
"allow_query": [],
"response": {
- "status": 403,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
@@ -99919,11 +138976,101 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidAccessKeyIdFixture error"
+ "data": "\nInvalidArgumentFixture error"
},
"framing": "chunked"
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidArgument"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "part_number"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidArgument"
+ }
+ }
+ ]
+ },
+ {
+ "id": "operations/s3/stage-unknown-upload",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "stage unknown upload",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "eA==",
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part",
+ "part_number": 1,
+ "upload_id": "fixture-upload+/4d0d5ccc4993="
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -99931,47 +139078,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture"
+ "value": "PUT"
}
},
{
- "at": "/body_base64",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
- "at": "/query/list-type",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "eA=="
}
},
{
- "at": "/query/prefix",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/"
+ "value": "1"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "fixture-upload+/4d0d5ccc4993="
}
}
],
@@ -99980,7 +139119,7 @@
],
"allow_query": [],
"response": {
- "status": 403,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
@@ -99989,7 +139128,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidAccessKeyIdThe AWS Access Key Id you provided does not exist in our records.not-a-tokenD3AWMCZ2CJYZX2K4iNmdT7uJWoHQA6IHwWhIKos452Xw9yuRP9vkj83JKvDa5ZUSTJ5lBFHsh3LIS/1DkVBgdHG6g50="
+ "data": "\nNoSuchUploadFixture error"
},
"framing": "chunked"
}
@@ -100011,7 +139150,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 403
+ "value": 404
}
},
{
@@ -100019,24 +139158,26 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidAccessKeyId"
+ "value": "NoSuchUpload"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/list-all-pages",
+ "id": "operations/s3/stage",
"profile": "s3",
"lane": "core",
- "purpose": "Follow each page's continuation token until a page is not truncated",
+ "purpose": "stage",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "op": "list",
- "page_size": 1,
- "prefix": "object-tests/board/"
+ "body_base64": "cGFydA==",
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part",
+ "part_number": 1,
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -100048,7 +139189,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -100056,7 +139197,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -100064,31 +139205,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "cGFydA=="
}
},
{
- "at": "/query/prefix",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "1"
}
},
{
- "at": "/query/max-keys",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -100099,19 +139232,59 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6d60d5bbaa47\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=11trueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-626f61720000"CRC64NVMEFULL_OBJECT8STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6d60d5bbaa47\""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/stage-key-question",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "stage, with the key \"question?mark.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "cGFydA==",
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "s3.upload_part",
+ "part_number": 1,
+ "upload_id": "fixture-upload+/276ca18046f9="
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -100119,7 +139292,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -100127,7 +139300,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/keys/question?mark.txt"
}
},
{
@@ -100135,27 +139308,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "value": "cGFydA=="
}
},
{
- "at": "/query/max-keys",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
@@ -100163,11 +139320,11 @@
}
},
{
- "at": "/query/encoding-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -100178,21 +139335,57 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6d60d5bbaa47\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=11urltrueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-626f61720000"CRC64NVMEFULL_OBJECT8STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
},
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6d60d5bbaa47\""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/stage-key-hash",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "stage, with the key \"hash#tag.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "cGFydA==",
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "s3.upload_part",
+ "part_number": 1,
+ "upload_id": "fixture-upload+/276ca18046f9="
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -100202,7 +139395,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -100210,7 +139403,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/keys/hash#tag.txt"
}
},
{
@@ -100218,27 +139411,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "value": "cGFydA=="
}
},
{
- "at": "/query/max-keys",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
@@ -100246,11 +139423,11 @@
}
},
{
- "at": "/query/continuation-token",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-marker+/a11ba9e5001="
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -100261,19 +139438,59 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6d60d5bbaa47\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=fixture-marker+/a11ba9e5002=11trueobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6d60d5bbaa47\""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/stage-key-percent",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "stage, with the key \"percent%20.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "cGFydA==",
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "s3.upload_part",
+ "part_number": 1,
+ "upload_id": "fixture-upload+/276ca18046f9="
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -100281,7 +139498,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -100289,7 +139506,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/keys/percent%20.txt"
}
},
{
@@ -100297,27 +139514,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "value": "cGFydA=="
}
},
{
- "at": "/query/max-keys",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
@@ -100325,19 +139526,11 @@
}
},
{
- "at": "/query/continuation-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-marker+/a11ba9e5001="
- }
- },
- {
- "at": "/query/encoding-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -100348,21 +139541,57 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6d60d5bbaa47\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=fixture-marker+/a11ba9e5002=11urltrueobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
},
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6d60d5bbaa47\""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/stage-key-plus",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "stage, with the key \"plus+plus.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "cGFydA==",
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "s3.upload_part",
+ "part_number": 1,
+ "upload_id": "fixture-upload+/276ca18046f9="
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -100372,7 +139601,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -100380,7 +139609,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/keys/plus+plus.txt"
}
},
{
@@ -100388,27 +139617,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "value": "cGFydA=="
}
},
{
- "at": "/query/max-keys",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
@@ -100416,11 +139629,11 @@
}
},
{
- "at": "/query/continuation-token",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-marker+/a11ba9e5002="
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -100431,19 +139644,59 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6d60d5bbaa47\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11falseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6d60d5bbaa47\""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/stage-key-space",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "stage, with the key \"space name.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "cGFydA==",
+ "key": "object-tests/keys/space name.txt",
+ "op": "s3.upload_part",
+ "part_number": 1,
+ "upload_id": "fixture-upload+/276ca18046f9="
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -100451,7 +139704,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -100459,7 +139712,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/keys/space name.txt"
}
},
{
@@ -100467,27 +139720,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "value": "cGFydA=="
}
},
{
- "at": "/query/max-keys",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
@@ -100495,19 +139732,11 @@
}
},
{
- "at": "/query/continuation-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-marker+/a11ba9e5002="
- }
- },
- {
- "at": "/query/encoding-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -100518,17 +139747,16 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6d60d5bbaa47\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11urlfalseobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -100544,31 +139772,30 @@
}
},
{
- "at": "/value/keys",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": [
- "object-tests/board/a.txt",
- "object-tests/board/nested/c.txt",
- "object-tests/board/z.txt"
- ]
+ "value": "\"fixture-6d60d5bbaa47\""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/list-entry-properties",
+ "id": "operations/s3/stage-key-non-ascii",
"profile": "s3",
"lane": "core",
- "purpose": "Report each listed object's last-modified time as RFC 3339 in UTC, and its storage class",
+ "purpose": "stage, with the key \"café/雪.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/properties/"
+ "body_base64": "cGFydA==",
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "s3.upload_part",
+ "part_number": 1,
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -100580,7 +139807,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -100588,7 +139815,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/keys/café/雪.txt"
}
},
{
@@ -100596,23 +139823,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "cGFydA=="
}
},
{
- "at": "/query/list-type",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "1"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/properties/"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -100623,88 +139850,16 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6d60d5bbaa47\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/properties/21000falseobject-tests/properties/infrequent.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2STANDARD_IAobject-tests/properties/standard.txt2024-02-03T04:05:06.000Z"fixture-5070726f0001"CRC64NVMEFULL_OBJECT3STANDARD"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/properties/"
- }
- },
- {
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
- }
+ "encoding": "base64",
+ "data": ""
}
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/properties/21000urlfalseobject-tests/properties/infrequent.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2STANDARD_IAobject-tests/properties/standard.txt2024-02-03T04:05:06.000Z"fixture-5070726f0001"CRC64NVMEFULL_OBJECT3STANDARD"
- },
- "framing": "chunked"
}
}
]
@@ -100720,190 +139875,30 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/properties/infrequent.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-5070726f0000\""
- }
- },
- {
- "at": "/value/entries/0/last_modified",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-02T03:04:05Z"
- }
- },
- {
- "at": "/value/entries/0/storage_class",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "STANDARD_IA"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/properties/standard.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 3
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-5070726f0001\""
- }
- },
- {
- "at": "/value/entries/1/last_modified",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-02-03T04:05:06Z"
- }
- },
- {
- "at": "/value/entries/1/storage_class",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "STANDARD"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "\"fixture-6d60d5bbaa47\""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/list-checksum-algorithm",
+ "id": "operations/s3/stage-key-double-slash",
"profile": "s3",
"lane": "core",
- "purpose": "Report each listed object's checksum algorithm as one name; S3 keeps one checksum per object, the one a write sent or else CRC64NVME, and lists one ChecksumAlgorithm",
+ "purpose": "stage, with the key \"double//slash.txt\"",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html",
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/checksum-listing/"
+ "body_base64": "cGFydA==",
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "s3.upload_part",
+ "part_number": 1,
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -100915,7 +139910,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -100923,7 +139918,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/keys/double//slash.txt"
}
},
{
@@ -100931,23 +139926,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "cGFydA=="
}
},
{
- "at": "/query/list-type",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "1"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/checksum-listing/"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -100958,19 +139953,59 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6d60d5bbaa47\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/checksum-listing/21000falseobject-tests/checksum-listing/crc32.txt2024-01-01T00:00:00.000Z"fixture-636b736c0000"CRC32FULL_OBJECT3STANDARDobject-tests/checksum-listing/none.txt2024-01-01T00:00:00.000Z"fixture-636b736c0001"CRC64NVMEFULL_OBJECT4STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6d60d5bbaa47\""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/stage-key-trailing-slash",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "stage, with the key \"trailing-slash/\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "cGFydA==",
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "s3.upload_part",
+ "part_number": 1,
+ "upload_id": "fixture-upload+/276ca18046f9="
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -100978,7 +140013,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -100986,7 +140021,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/keys/trailing-slash/"
}
},
{
@@ -100994,235 +140029,82 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "cGFydA=="
}
},
{
- "at": "/query/prefix",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/checksum-listing/"
+ "value": "1"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/checksum-listing/21000urlfalseobject-tests/checksum-listing/crc32.txt2024-01-01T00:00:00.000Z"fixture-636b736c0000"CRC32FULL_OBJECT3STANDARDobject-tests/checksum-listing/none.txt2024-01-01T00:00:00.000Z"fixture-636b736c0001"CRC64NVMEFULL_OBJECT4STANDARD"
- },
- "framing": "chunked"
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/checksum-listing/crc32.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 3
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-636b736c0000\""
- }
- },
- {
- "at": "/value/entries/0/checksum_algorithm",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "CRC32"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/checksum-listing/none.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 4
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-636b736c0001\""
- }
- },
- {
- "at": "/value/entries/1/checksum_algorithm",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "CRC64NVME"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- },
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-6d60d5bbaa47\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/prefixes",
+ "at": "/outcome",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "equal",
+ "value": "ok"
}
},
{
- "at": "/value/continuation_token",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "\"fixture-6d60d5bbaa47\""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/list-other-delimiter",
+ "id": "operations/s3/stage-empty-part",
"profile": "s3",
"lane": "core",
- "purpose": "Send the delimiter the caller names. A general-purpose bucket groups keys at any delimiter, not only /; here a- groups a-1.txt and a-2.txt",
+ "purpose": "Stage an empty part, which S3 takes",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "delimiter": "-",
- "op": "list_page",
- "prefix": "object-tests/dashes/"
+ "body_base64": "",
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part",
+ "part_number": 1,
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -101234,7 +140116,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -101242,7 +140124,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -101254,27 +140136,19 @@
}
},
{
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/dashes/"
+ "value": "1"
}
},
{
- "at": "/query/delimiter",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "-"
+ "value": "fixture-upload+/276ca18046f9="
}
}
],
@@ -101285,19 +140159,59 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6d60d5bbaa47\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/dashes/21000-falseobject-tests/dashes/b.txt2024-01-01T00:00:00.000Z"fixture-646173680000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/dashes/a-"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6d60d5bbaa47\""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/stage-copy",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Copy a whole object into a part of a multipart upload, with UploadPartCopy",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html"
+ ],
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part_copy",
+ "part_number": 1,
+ "source_key": "object-tests/copy/source.txt",
+ "upload_id": "fixture-upload+/276ca18046f9="
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -101305,7 +140219,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -101313,7 +140227,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -101325,35 +140239,27 @@
}
},
{
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/dashes/"
+ "value": "1"
}
},
{
- "at": "/query/delimiter",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "-"
+ "value": "fixture-upload+/276ca18046f9="
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "url"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -101367,14 +140273,12 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/dashes/21000-urlfalseobject-tests/dashes/b.txt2024-01-01T00:00:00.000Z"fixture-646173680000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/dashes/a-"
- },
- "framing": "chunked"
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
}
}
]
@@ -101390,109 +140294,34 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/dashes/b.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-646173680000\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes/0",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/dashes/a-"
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/continuation_token",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "\"fixture-etag\""
}
}
],
"refusal": null
},
{
- "id": "operations/s3/list-prefix-special-characters",
+ "id": "operations/s3/stage-copy-range",
"profile": "s3",
"lane": "core",
- "purpose": "Percent-encode the prefix in the query, a space as %20 and a plus as %2B, and decode the common prefixes of a URL-encoded listing as well as the keys",
+ "purpose": "Copy bytes 0 to 2 of an object into a part, named in x-amz-copy-source-range with an inclusive end, as bytes=0-2",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html"
],
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/odd a+b&c=d%é/"
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part_copy",
+ "part_number": 1,
+ "source_key": "object-tests/copy/source.txt",
+ "source_range": {
+ "end": 3,
+ "start": 0
+ },
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -101504,7 +140333,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -101512,7 +140341,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -101524,27 +140353,35 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "1"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/odd a+b&c=d%é/"
+ "value": "fixture-upload+/276ca18046f9="
}
},
{
- "at": "/query/delimiter",
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-range",
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "bytes=0-2"
}
}
],
@@ -101558,16 +140395,59 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/odd a+b&c=d%é/21000/falseobject-tests/odd a+b&c=d%é/x.txt2024-01-01T00:00:00.000Z"fixture-6f6464200000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/odd a+b&c=d%é/sub dir+/"
- },
- "framing": "chunked"
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/stage-copy-range-beyond-source",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report a part copy whose range ends past the source as an error. S3 answers 400 InvalidArgument",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html"
+ ],
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part_copy",
+ "part_number": 1,
+ "source_key": "object-tests/copy/source.txt",
+ "source_range": {
+ "end": 10,
+ "start": 0
+ },
+ "upload_id": "fixture-upload+/276ca18046f9="
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -101575,7 +140455,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -101583,7 +140463,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -101595,35 +140475,35 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "1"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/odd a+b&c=d%é/"
+ "value": "fixture-upload+/276ca18046f9="
}
},
{
- "at": "/query/delimiter",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "/"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-copy-source-range",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "bytes=0-9"
}
}
],
@@ -101632,17 +140512,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/odd+a%2Bb%26c%3Dd%25%C3%A9/21000/urlfalseobject-tests/odd+a%2Bb%26c%3Dd%25%C3%A9/x.txt2024-01-01T00:00:00.000Z"fixture-6f6464200000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/odd+a%2Bb%26c%3Dd%25%C3%A9/sub+dir%2B/"
+ "data": "\nInvalidArgumentFixture error"
},
"framing": "chunked"
}
@@ -101656,113 +140535,45 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/odd a+b&c=d%é/x.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6f6464200000\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
+ "value": "error"
}
},
{
- "at": "/value/prefixes/0",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/odd a+b&c=d%é/sub dir+/"
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
+ "value": 400
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "InvalidArgument"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/list-fetch-owner",
+ "id": "operations/s3/stage-copy-200-internal-error",
"profile": "s3",
"lane": "core",
- "purpose": "Ask for owners with fetch-owner=true, and report each listed object's owner ID",
+ "purpose": "Report a part copy answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://repost.aws/knowledge-center/s3-resolve-200-internalerror",
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html"
],
+ "origin": "transient",
+ "derived_from": "operations/s3/stage-copy",
"call": {
- "fetch_owner": true,
- "op": "list_page",
- "prefix": "object-tests/owner/"
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part_copy",
+ "part_number": 1,
+ "source_key": "object-tests/copy/source.txt",
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -101774,7 +140585,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -101782,7 +140593,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -101794,27 +140605,27 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "1"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/owner/"
+ "value": "fixture-upload+/276ca18046f9="
}
},
{
- "at": "/query/fetch-owner",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "true"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -101828,16 +140639,19 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/owner/11000falseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idSTANDARD"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
- },
+ }
+ ]
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -101845,7 +140659,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -101853,7 +140667,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -101865,35 +140679,102 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "1"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/owner/"
+ "value": "fixture-upload+/276ca18046f9="
}
},
{
- "at": "/query/fetch-owner",
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "true"
+ "value": "PUT"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/partNumber",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -101907,133 +140788,18 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/owner/11000urlfalseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idSTANDARD"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/owner/a.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6f776e650000\""
- }
- },
- {
- "at": "/value/entries/0/owner_id",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-owner-id"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
+ ],
+ "optional": true
},
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/list-over-1000",
- "profile": "s3",
- "lane": "core",
- "purpose": "List more keys than the service's default page of 1,000 by following the continuation token",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "op": "list",
- "prefix": "object-tests/many/"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -102043,7 +140809,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -102051,7 +140817,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -102063,19 +140829,27 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "1"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/many/"
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -102089,16 +140863,20 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=10001000trueobject-tests/many/00002024-01-01T00:00:00.000Z"fixture-6d610000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00012024-01-01T00:00:00.000Z"fixture-6d610001"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00022024-01-01T00:00:00.000Z"fixture-6d610002"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00032024-01-01T00:00:00.000Z"fixture-6d610003"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00042024-01-01T00:00:00.000Z"fixture-6d610004"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00052024-01-01T00:00:00.000Z"fixture-6d610005"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00062024-01-01T00:00:00.000Z"fixture-6d610006"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00072024-01-01T00:00:00.000Z"fixture-6d610007"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00082024-01-01T00:00:00.000Z"fixture-6d610008"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00092024-01-01T00:00:00.000Z"fixture-6d610009"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00102024-01-01T00:00:00.000Z"fixture-6d61000a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00112024-01-01T00:00:00.000Z"fixture-6d61000b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00122024-01-01T00:00:00.000Z"fixture-6d61000c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00132024-01-01T00:00:00.000Z"fixture-6d61000d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00142024-01-01T00:00:00.000Z"fixture-6d61000e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00152024-01-01T00:00:00.000Z"fixture-6d61000f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00162024-01-01T00:00:00.000Z"fixture-6d610010"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00172024-01-01T00:00:00.000Z"fixture-6d610011"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00182024-01-01T00:00:00.000Z"fixture-6d610012"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00192024-01-01T00:00:00.000Z"fixture-6d610013"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00202024-01-01T00:00:00.000Z"fixture-6d610014"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00212024-01-01T00:00:00.000Z"fixture-6d610015"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00222024-01-01T00:00:00.000Z"fixture-6d610016"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00232024-01-01T00:00:00.000Z"fixture-6d610017"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00242024-01-01T00:00:00.000Z"fixture-6d610018"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00252024-01-01T00:00:00.000Z"fixture-6d610019"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00262024-01-01T00:00:00.000Z"fixture-6d61001a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00272024-01-01T00:00:00.000Z"fixture-6d61001b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00282024-01-01T00:00:00.000Z"fixture-6d61001c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00292024-01-01T00:00:00.000Z"fixture-6d61001d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00302024-01-01T00:00:00.000Z"fixture-6d61001e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00312024-01-01T00:00:00.000Z"fixture-6d61001f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00322024-01-01T00:00:00.000Z"fixture-6d610020"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00332024-01-01T00:00:00.000Z"fixture-6d610021"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00342024-01-01T00:00:00.000Z"fixture-6d610022"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00352024-01-01T00:00:00.000Z"fixture-6d610023"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00362024-01-01T00:00:00.000Z"fixture-6d610024"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00372024-01-01T00:00:00.000Z"fixture-6d610025"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00382024-01-01T00:00:00.000Z"fixture-6d610026"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00392024-01-01T00:00:00.000Z"fixture-6d610027"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00402024-01-01T00:00:00.000Z"fixture-6d610028"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00412024-01-01T00:00:00.000Z"fixture-6d610029"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00422024-01-01T00:00:00.000Z"fixture-6d61002a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00432024-01-01T00:00:00.000Z"fixture-6d61002b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00442024-01-01T00:00:00.000Z"fixture-6d61002c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00452024-01-01T00:00:00.000Z"fixture-6d61002d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00462024-01-01T00:00:00.000Z"fixture-6d61002e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00472024-01-01T00:00:00.000Z"fixture-6d61002f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00482024-01-01T00:00:00.000Z"fixture-6d610030"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00492024-01-01T00:00:00.000Z"fixture-6d610031"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00502024-01-01T00:00:00.000Z"fixture-6d610032"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00512024-01-01T00:00:00.000Z"fixture-6d610033"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00522024-01-01T00:00:00.000Z"fixture-6d610034"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00532024-01-01T00:00:00.000Z"fixture-6d610035"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00542024-01-01T00:00:00.000Z"fixture-6d610036"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00552024-01-01T00:00:00.000Z"fixture-6d610037"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00562024-01-01T00:00:00.000Z"fixture-6d610038"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00572024-01-01T00:00:00.000Z"fixture-6d610039"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00582024-01-01T00:00:00.000Z"fixture-6d61003a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00592024-01-01T00:00:00.000Z"fixture-6d61003b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00602024-01-01T00:00:00.000Z"fixture-6d61003c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00612024-01-01T00:00:00.000Z"fixture-6d61003d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00622024-01-01T00:00:00.000Z"fixture-6d61003e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00632024-01-01T00:00:00.000Z"fixture-6d61003f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00642024-01-01T00:00:00.000Z"fixture-6d610040"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00652024-01-01T00:00:00.000Z"fixture-6d610041"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00662024-01-01T00:00:00.000Z"fixture-6d610042"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00672024-01-01T00:00:00.000Z"fixture-6d610043"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00682024-01-01T00:00:00.000Z"fixture-6d610044"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00692024-01-01T00:00:00.000Z"fixture-6d610045"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00702024-01-01T00:00:00.000Z"fixture-6d610046"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00712024-01-01T00:00:00.000Z"fixture-6d610047"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00722024-01-01T00:00:00.000Z"fixture-6d610048"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00732024-01-01T00:00:00.000Z"fixture-6d610049"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00742024-01-01T00:00:00.000Z"fixture-6d61004a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00752024-01-01T00:00:00.000Z"fixture-6d61004b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00762024-01-01T00:00:00.000Z"fixture-6d61004c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00772024-01-01T00:00:00.000Z"fixture-6d61004d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00782024-01-01T00:00:00.000Z"fixture-6d61004e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00792024-01-01T00:00:00.000Z"fixture-6d61004f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00802024-01-01T00:00:00.000Z"fixture-6d610050"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00812024-01-01T00:00:00.000Z"fixture-6d610051"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00822024-01-01T00:00:00.000Z"fixture-6d610052"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00832024-01-01T00:00:00.000Z"fixture-6d610053"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00842024-01-01T00:00:00.000Z"fixture-6d610054"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00852024-01-01T00:00:00.000Z"fixture-6d610055"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00862024-01-01T00:00:00.000Z"fixture-6d610056"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00872024-01-01T00:00:00.000Z"fixture-6d610057"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00882024-01-01T00:00:00.000Z"fixture-6d610058"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00892024-01-01T00:00:00.000Z"fixture-6d610059"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00902024-01-01T00:00:00.000Z"fixture-6d61005a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00912024-01-01T00:00:00.000Z"fixture-6d61005b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00922024-01-01T00:00:00.000Z"fixture-6d61005c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00932024-01-01T00:00:00.000Z"fixture-6d61005d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00942024-01-01T00:00:00.000Z"fixture-6d61005e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00952024-01-01T00:00:00.000Z"fixture-6d61005f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00962024-01-01T00:00:00.000Z"fixture-6d610060"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00972024-01-01T00:00:00.000Z"fixture-6d610061"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00982024-01-01T00:00:00.000Z"fixture-6d610062"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00992024-01-01T00:00:00.000Z"fixture-6d610063"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01002024-01-01T00:00:00.000Z"fixture-6d610064"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01012024-01-01T00:00:00.000Z"fixture-6d610065"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01022024-01-01T00:00:00.000Z"fixture-6d610066"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01032024-01-01T00:00:00.000Z"fixture-6d610067"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01042024-01-01T00:00:00.000Z"fixture-6d610068"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01052024-01-01T00:00:00.000Z"fixture-6d610069"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01062024-01-01T00:00:00.000Z"fixture-6d61006a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01072024-01-01T00:00:00.000Z"fixture-6d61006b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01082024-01-01T00:00:00.000Z"fixture-6d61006c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01092024-01-01T00:00:00.000Z"fixture-6d61006d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01102024-01-01T00:00:00.000Z"fixture-6d61006e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01112024-01-01T00:00:00.000Z"fixture-6d61006f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01122024-01-01T00:00:00.000Z"fixture-6d610070"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01132024-01-01T00:00:00.000Z"fixture-6d610071"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01142024-01-01T00:00:00.000Z"fixture-6d610072"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01152024-01-01T00:00:00.000Z"fixture-6d610073"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01162024-01-01T00:00:00.000Z"fixture-6d610074"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01172024-01-01T00:00:00.000Z"fixture-6d610075"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01182024-01-01T00:00:00.000Z"fixture-6d610076"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01192024-01-01T00:00:00.000Z"fixture-6d610077"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01202024-01-01T00:00:00.000Z"fixture-6d610078"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01212024-01-01T00:00:00.000Z"fixture-6d610079"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01222024-01-01T00:00:00.000Z"fixture-6d61007a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01232024-01-01T00:00:00.000Z"fixture-6d61007b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01242024-01-01T00:00:00.000Z"fixture-6d61007c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01252024-01-01T00:00:00.000Z"fixture-6d61007d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01262024-01-01T00:00:00.000Z"fixture-6d61007e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01272024-01-01T00:00:00.000Z"fixture-6d61007f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01282024-01-01T00:00:00.000Z"fixture-6d610080"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01292024-01-01T00:00:00.000Z"fixture-6d610081"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01302024-01-01T00:00:00.000Z"fixture-6d610082"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01312024-01-01T00:00:00.000Z"fixture-6d610083"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01322024-01-01T00:00:00.000Z"fixture-6d610084"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01332024-01-01T00:00:00.000Z"fixture-6d610085"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01342024-01-01T00:00:00.000Z"fixture-6d610086"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01352024-01-01T00:00:00.000Z"fixture-6d610087"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01362024-01-01T00:00:00.000Z"fixture-6d610088"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01372024-01-01T00:00:00.000Z"fixture-6d610089"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01382024-01-01T00:00:00.000Z"fixture-6d61008a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01392024-01-01T00:00:00.000Z"fixture-6d61008b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01402024-01-01T00:00:00.000Z"fixture-6d61008c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01412024-01-01T00:00:00.000Z"fixture-6d61008d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01422024-01-01T00:00:00.000Z"fixture-6d61008e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01432024-01-01T00:00:00.000Z"fixture-6d61008f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01442024-01-01T00:00:00.000Z"fixture-6d610090"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01452024-01-01T00:00:00.000Z"fixture-6d610091"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01462024-01-01T00:00:00.000Z"fixture-6d610092"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01472024-01-01T00:00:00.000Z"fixture-6d610093"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01482024-01-01T00:00:00.000Z"fixture-6d610094"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01492024-01-01T00:00:00.000Z"fixture-6d610095"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01502024-01-01T00:00:00.000Z"fixture-6d610096"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01512024-01-01T00:00:00.000Z"fixture-6d610097"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01522024-01-01T00:00:00.000Z"fixture-6d610098"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01532024-01-01T00:00:00.000Z"fixture-6d610099"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01542024-01-01T00:00:00.000Z"fixture-6d61009a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01552024-01-01T00:00:00.000Z"fixture-6d61009b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01562024-01-01T00:00:00.000Z"fixture-6d61009c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01572024-01-01T00:00:00.000Z"fixture-6d61009d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01582024-01-01T00:00:00.000Z"fixture-6d61009e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01592024-01-01T00:00:00.000Z"fixture-6d61009f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01602024-01-01T00:00:00.000Z"fixture-6d6100a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01612024-01-01T00:00:00.000Z"fixture-6d6100a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01622024-01-01T00:00:00.000Z"fixture-6d6100a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01632024-01-01T00:00:00.000Z"fixture-6d6100a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01642024-01-01T00:00:00.000Z"fixture-6d6100a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01652024-01-01T00:00:00.000Z"fixture-6d6100a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01662024-01-01T00:00:00.000Z"fixture-6d6100a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01672024-01-01T00:00:00.000Z"fixture-6d6100a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01682024-01-01T00:00:00.000Z"fixture-6d6100a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01692024-01-01T00:00:00.000Z"fixture-6d6100a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01702024-01-01T00:00:00.000Z"fixture-6d6100aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01712024-01-01T00:00:00.000Z"fixture-6d6100ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01722024-01-01T00:00:00.000Z"fixture-6d6100ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01732024-01-01T00:00:00.000Z"fixture-6d6100ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01742024-01-01T00:00:00.000Z"fixture-6d6100ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01752024-01-01T00:00:00.000Z"fixture-6d6100af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01762024-01-01T00:00:00.000Z"fixture-6d6100b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01772024-01-01T00:00:00.000Z"fixture-6d6100b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01782024-01-01T00:00:00.000Z"fixture-6d6100b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01792024-01-01T00:00:00.000Z"fixture-6d6100b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01802024-01-01T00:00:00.000Z"fixture-6d6100b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01812024-01-01T00:00:00.000Z"fixture-6d6100b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01822024-01-01T00:00:00.000Z"fixture-6d6100b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01832024-01-01T00:00:00.000Z"fixture-6d6100b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01842024-01-01T00:00:00.000Z"fixture-6d6100b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01852024-01-01T00:00:00.000Z"fixture-6d6100b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01862024-01-01T00:00:00.000Z"fixture-6d6100ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01872024-01-01T00:00:00.000Z"fixture-6d6100bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01882024-01-01T00:00:00.000Z"fixture-6d6100bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01892024-01-01T00:00:00.000Z"fixture-6d6100bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01902024-01-01T00:00:00.000Z"fixture-6d6100be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01912024-01-01T00:00:00.000Z"fixture-6d6100bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01922024-01-01T00:00:00.000Z"fixture-6d6100c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01932024-01-01T00:00:00.000Z"fixture-6d6100c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01942024-01-01T00:00:00.000Z"fixture-6d6100c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01952024-01-01T00:00:00.000Z"fixture-6d6100c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01962024-01-01T00:00:00.000Z"fixture-6d6100c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01972024-01-01T00:00:00.000Z"fixture-6d6100c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01982024-01-01T00:00:00.000Z"fixture-6d6100c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01992024-01-01T00:00:00.000Z"fixture-6d6100c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02002024-01-01T00:00:00.000Z"fixture-6d6100c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02012024-01-01T00:00:00.000Z"fixture-6d6100c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02022024-01-01T00:00:00.000Z"fixture-6d6100ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02032024-01-01T00:00:00.000Z"fixture-6d6100cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02042024-01-01T00:00:00.000Z"fixture-6d6100cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02052024-01-01T00:00:00.000Z"fixture-6d6100cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02062024-01-01T00:00:00.000Z"fixture-6d6100ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02072024-01-01T00:00:00.000Z"fixture-6d6100cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02082024-01-01T00:00:00.000Z"fixture-6d6100d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02092024-01-01T00:00:00.000Z"fixture-6d6100d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02102024-01-01T00:00:00.000Z"fixture-6d6100d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02112024-01-01T00:00:00.000Z"fixture-6d6100d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02122024-01-01T00:00:00.000Z"fixture-6d6100d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02132024-01-01T00:00:00.000Z"fixture-6d6100d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02142024-01-01T00:00:00.000Z"fixture-6d6100d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02152024-01-01T00:00:00.000Z"fixture-6d6100d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02162024-01-01T00:00:00.000Z"fixture-6d6100d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02172024-01-01T00:00:00.000Z"fixture-6d6100d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02182024-01-01T00:00:00.000Z"fixture-6d6100da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02192024-01-01T00:00:00.000Z"fixture-6d6100db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02202024-01-01T00:00:00.000Z"fixture-6d6100dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02212024-01-01T00:00:00.000Z"fixture-6d6100dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02222024-01-01T00:00:00.000Z"fixture-6d6100de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02232024-01-01T00:00:00.000Z"fixture-6d6100df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02242024-01-01T00:00:00.000Z"fixture-6d6100e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02252024-01-01T00:00:00.000Z"fixture-6d6100e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02262024-01-01T00:00:00.000Z"fixture-6d6100e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02272024-01-01T00:00:00.000Z"fixture-6d6100e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02282024-01-01T00:00:00.000Z"fixture-6d6100e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02292024-01-01T00:00:00.000Z"fixture-6d6100e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02302024-01-01T00:00:00.000Z"fixture-6d6100e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02312024-01-01T00:00:00.000Z"fixture-6d6100e7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02322024-01-01T00:00:00.000Z"fixture-6d6100e8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02332024-01-01T00:00:00.000Z"fixture-6d6100e9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02342024-01-01T00:00:00.000Z"fixture-6d6100ea"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02352024-01-01T00:00:00.000Z"fixture-6d6100eb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02362024-01-01T00:00:00.000Z"fixture-6d6100ec"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02372024-01-01T00:00:00.000Z"fixture-6d6100ed"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02382024-01-01T00:00:00.000Z"fixture-6d6100ee"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02392024-01-01T00:00:00.000Z"fixture-6d6100ef"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02402024-01-01T00:00:00.000Z"fixture-6d6100f0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02412024-01-01T00:00:00.000Z"fixture-6d6100f1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02422024-01-01T00:00:00.000Z"fixture-6d6100f2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02432024-01-01T00:00:00.000Z"fixture-6d6100f3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02442024-01-01T00:00:00.000Z"fixture-6d6100f4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02452024-01-01T00:00:00.000Z"fixture-6d6100f5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02462024-01-01T00:00:00.000Z"fixture-6d6100f6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02472024-01-01T00:00:00.000Z"fixture-6d6100f7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02482024-01-01T00:00:00.000Z"fixture-6d6100f8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02492024-01-01T00:00:00.000Z"fixture-6d6100f9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02502024-01-01T00:00:00.000Z"fixture-6d6100fa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02512024-01-01T00:00:00.000Z"fixture-6d6100fb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02522024-01-01T00:00:00.000Z"fixture-6d6100fc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02532024-01-01T00:00:00.000Z"fixture-6d6100fd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02542024-01-01T00:00:00.000Z"fixture-6d6100fe"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02552024-01-01T00:00:00.000Z"fixture-6d6100ff"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02562024-01-01T00:00:00.000Z"fixture-6d610100"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02572024-01-01T00:00:00.000Z"fixture-6d610101"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02582024-01-01T00:00:00.000Z"fixture-6d610102"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02592024-01-01T00:00:00.000Z"fixture-6d610103"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02602024-01-01T00:00:00.000Z"fixture-6d610104"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02612024-01-01T00:00:00.000Z"fixture-6d610105"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02622024-01-01T00:00:00.000Z"fixture-6d610106"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02632024-01-01T00:00:00.000Z"fixture-6d610107"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02642024-01-01T00:00:00.000Z"fixture-6d610108"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02652024-01-01T00:00:00.000Z"fixture-6d610109"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02662024-01-01T00:00:00.000Z"fixture-6d61010a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02672024-01-01T00:00:00.000Z"fixture-6d61010b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02682024-01-01T00:00:00.000Z"fixture-6d61010c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02692024-01-01T00:00:00.000Z"fixture-6d61010d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02702024-01-01T00:00:00.000Z"fixture-6d61010e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02712024-01-01T00:00:00.000Z"fixture-6d61010f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02722024-01-01T00:00:00.000Z"fixture-6d610110"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02732024-01-01T00:00:00.000Z"fixture-6d610111"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02742024-01-01T00:00:00.000Z"fixture-6d610112"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02752024-01-01T00:00:00.000Z"fixture-6d610113"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02762024-01-01T00:00:00.000Z"fixture-6d610114"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02772024-01-01T00:00:00.000Z"fixture-6d610115"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02782024-01-01T00:00:00.000Z"fixture-6d610116"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02792024-01-01T00:00:00.000Z"fixture-6d610117"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02802024-01-01T00:00:00.000Z"fixture-6d610118"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02812024-01-01T00:00:00.000Z"fixture-6d610119"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02822024-01-01T00:00:00.000Z"fixture-6d61011a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02832024-01-01T00:00:00.000Z"fixture-6d61011b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02842024-01-01T00:00:00.000Z"fixture-6d61011c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02852024-01-01T00:00:00.000Z"fixture-6d61011d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02862024-01-01T00:00:00.000Z"fixture-6d61011e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02872024-01-01T00:00:00.000Z"fixture-6d61011f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02882024-01-01T00:00:00.000Z"fixture-6d610120"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02892024-01-01T00:00:00.000Z"fixture-6d610121"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02902024-01-01T00:00:00.000Z"fixture-6d610122"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02912024-01-01T00:00:00.000Z"fixture-6d610123"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02922024-01-01T00:00:00.000Z"fixture-6d610124"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02932024-01-01T00:00:00.000Z"fixture-6d610125"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02942024-01-01T00:00:00.000Z"fixture-6d610126"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02952024-01-01T00:00:00.000Z"fixture-6d610127"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02962024-01-01T00:00:00.000Z"fixture-6d610128"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02972024-01-01T00:00:00.000Z"fixture-6d610129"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02982024-01-01T00:00:00.000Z"fixture-6d61012a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02992024-01-01T00:00:00.000Z"fixture-6d61012b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03002024-01-01T00:00:00.000Z"fixture-6d61012c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03012024-01-01T00:00:00.000Z"fixture-6d61012d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03022024-01-01T00:00:00.000Z"fixture-6d61012e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03032024-01-01T00:00:00.000Z"fixture-6d61012f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03042024-01-01T00:00:00.000Z"fixture-6d610130"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03052024-01-01T00:00:00.000Z"fixture-6d610131"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03062024-01-01T00:00:00.000Z"fixture-6d610132"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03072024-01-01T00:00:00.000Z"fixture-6d610133"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03082024-01-01T00:00:00.000Z"fixture-6d610134"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03092024-01-01T00:00:00.000Z"fixture-6d610135"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03102024-01-01T00:00:00.000Z"fixture-6d610136"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03112024-01-01T00:00:00.000Z"fixture-6d610137"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03122024-01-01T00:00:00.000Z"fixture-6d610138"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03132024-01-01T00:00:00.000Z"fixture-6d610139"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03142024-01-01T00:00:00.000Z"fixture-6d61013a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03152024-01-01T00:00:00.000Z"fixture-6d61013b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03162024-01-01T00:00:00.000Z"fixture-6d61013c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03172024-01-01T00:00:00.000Z"fixture-6d61013d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03182024-01-01T00:00:00.000Z"fixture-6d61013e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03192024-01-01T00:00:00.000Z"fixture-6d61013f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03202024-01-01T00:00:00.000Z"fixture-6d610140"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03212024-01-01T00:00:00.000Z"fixture-6d610141"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03222024-01-01T00:00:00.000Z"fixture-6d610142"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03232024-01-01T00:00:00.000Z"fixture-6d610143"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03242024-01-01T00:00:00.000Z"fixture-6d610144"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03252024-01-01T00:00:00.000Z"fixture-6d610145"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03262024-01-01T00:00:00.000Z"fixture-6d610146"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03272024-01-01T00:00:00.000Z"fixture-6d610147"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03282024-01-01T00:00:00.000Z"fixture-6d610148"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03292024-01-01T00:00:00.000Z"fixture-6d610149"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03302024-01-01T00:00:00.000Z"fixture-6d61014a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03312024-01-01T00:00:00.000Z"fixture-6d61014b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03322024-01-01T00:00:00.000Z"fixture-6d61014c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03332024-01-01T00:00:00.000Z"fixture-6d61014d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03342024-01-01T00:00:00.000Z"fixture-6d61014e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03352024-01-01T00:00:00.000Z"fixture-6d61014f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03362024-01-01T00:00:00.000Z"fixture-6d610150"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03372024-01-01T00:00:00.000Z"fixture-6d610151"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03382024-01-01T00:00:00.000Z"fixture-6d610152"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03392024-01-01T00:00:00.000Z"fixture-6d610153"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03402024-01-01T00:00:00.000Z"fixture-6d610154"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03412024-01-01T00:00:00.000Z"fixture-6d610155"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03422024-01-01T00:00:00.000Z"fixture-6d610156"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03432024-01-01T00:00:00.000Z"fixture-6d610157"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03442024-01-01T00:00:00.000Z"fixture-6d610158"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03452024-01-01T00:00:00.000Z"fixture-6d610159"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03462024-01-01T00:00:00.000Z"fixture-6d61015a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03472024-01-01T00:00:00.000Z"fixture-6d61015b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03482024-01-01T00:00:00.000Z"fixture-6d61015c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03492024-01-01T00:00:00.000Z"fixture-6d61015d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03502024-01-01T00:00:00.000Z"fixture-6d61015e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03512024-01-01T00:00:00.000Z"fixture-6d61015f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03522024-01-01T00:00:00.000Z"fixture-6d610160"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03532024-01-01T00:00:00.000Z"fixture-6d610161"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03542024-01-01T00:00:00.000Z"fixture-6d610162"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03552024-01-01T00:00:00.000Z"fixture-6d610163"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03562024-01-01T00:00:00.000Z"fixture-6d610164"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03572024-01-01T00:00:00.000Z"fixture-6d610165"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03582024-01-01T00:00:00.000Z"fixture-6d610166"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03592024-01-01T00:00:00.000Z"fixture-6d610167"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03602024-01-01T00:00:00.000Z"fixture-6d610168"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03612024-01-01T00:00:00.000Z"fixture-6d610169"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03622024-01-01T00:00:00.000Z"fixture-6d61016a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03632024-01-01T00:00:00.000Z"fixture-6d61016b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03642024-01-01T00:00:00.000Z"fixture-6d61016c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03652024-01-01T00:00:00.000Z"fixture-6d61016d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03662024-01-01T00:00:00.000Z"fixture-6d61016e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03672024-01-01T00:00:00.000Z"fixture-6d61016f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03682024-01-01T00:00:00.000Z"fixture-6d610170"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03692024-01-01T00:00:00.000Z"fixture-6d610171"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03702024-01-01T00:00:00.000Z"fixture-6d610172"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03712024-01-01T00:00:00.000Z"fixture-6d610173"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03722024-01-01T00:00:00.000Z"fixture-6d610174"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03732024-01-01T00:00:00.000Z"fixture-6d610175"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03742024-01-01T00:00:00.000Z"fixture-6d610176"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03752024-01-01T00:00:00.000Z"fixture-6d610177"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03762024-01-01T00:00:00.000Z"fixture-6d610178"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03772024-01-01T00:00:00.000Z"fixture-6d610179"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03782024-01-01T00:00:00.000Z"fixture-6d61017a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03792024-01-01T00:00:00.000Z"fixture-6d61017b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03802024-01-01T00:00:00.000Z"fixture-6d61017c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03812024-01-01T00:00:00.000Z"fixture-6d61017d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03822024-01-01T00:00:00.000Z"fixture-6d61017e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03832024-01-01T00:00:00.000Z"fixture-6d61017f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03842024-01-01T00:00:00.000Z"fixture-6d610180"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03852024-01-01T00:00:00.000Z"fixture-6d610181"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03862024-01-01T00:00:00.000Z"fixture-6d610182"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03872024-01-01T00:00:00.000Z"fixture-6d610183"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03882024-01-01T00:00:00.000Z"fixture-6d610184"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03892024-01-01T00:00:00.000Z"fixture-6d610185"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03902024-01-01T00:00:00.000Z"fixture-6d610186"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03912024-01-01T00:00:00.000Z"fixture-6d610187"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03922024-01-01T00:00:00.000Z"fixture-6d610188"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03932024-01-01T00:00:00.000Z"fixture-6d610189"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03942024-01-01T00:00:00.000Z"fixture-6d61018a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03952024-01-01T00:00:00.000Z"fixture-6d61018b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03962024-01-01T00:00:00.000Z"fixture-6d61018c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03972024-01-01T00:00:00.000Z"fixture-6d61018d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03982024-01-01T00:00:00.000Z"fixture-6d61018e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03992024-01-01T00:00:00.000Z"fixture-6d61018f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04002024-01-01T00:00:00.000Z"fixture-6d610190"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04012024-01-01T00:00:00.000Z"fixture-6d610191"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04022024-01-01T00:00:00.000Z"fixture-6d610192"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04032024-01-01T00:00:00.000Z"fixture-6d610193"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04042024-01-01T00:00:00.000Z"fixture-6d610194"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04052024-01-01T00:00:00.000Z"fixture-6d610195"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04062024-01-01T00:00:00.000Z"fixture-6d610196"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04072024-01-01T00:00:00.000Z"fixture-6d610197"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04082024-01-01T00:00:00.000Z"fixture-6d610198"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04092024-01-01T00:00:00.000Z"fixture-6d610199"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04102024-01-01T00:00:00.000Z"fixture-6d61019a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04112024-01-01T00:00:00.000Z"fixture-6d61019b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04122024-01-01T00:00:00.000Z"fixture-6d61019c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04132024-01-01T00:00:00.000Z"fixture-6d61019d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04142024-01-01T00:00:00.000Z"fixture-6d61019e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04152024-01-01T00:00:00.000Z"fixture-6d61019f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04162024-01-01T00:00:00.000Z"fixture-6d6101a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04172024-01-01T00:00:00.000Z"fixture-6d6101a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04182024-01-01T00:00:00.000Z"fixture-6d6101a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04192024-01-01T00:00:00.000Z"fixture-6d6101a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04202024-01-01T00:00:00.000Z"fixture-6d6101a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04212024-01-01T00:00:00.000Z"fixture-6d6101a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04222024-01-01T00:00:00.000Z"fixture-6d6101a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04232024-01-01T00:00:00.000Z"fixture-6d6101a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04242024-01-01T00:00:00.000Z"fixture-6d6101a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04252024-01-01T00:00:00.000Z"fixture-6d6101a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04262024-01-01T00:00:00.000Z"fixture-6d6101aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04272024-01-01T00:00:00.000Z"fixture-6d6101ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04282024-01-01T00:00:00.000Z"fixture-6d6101ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04292024-01-01T00:00:00.000Z"fixture-6d6101ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04302024-01-01T00:00:00.000Z"fixture-6d6101ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04312024-01-01T00:00:00.000Z"fixture-6d6101af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04322024-01-01T00:00:00.000Z"fixture-6d6101b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04332024-01-01T00:00:00.000Z"fixture-6d6101b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04342024-01-01T00:00:00.000Z"fixture-6d6101b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04352024-01-01T00:00:00.000Z"fixture-6d6101b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04362024-01-01T00:00:00.000Z"fixture-6d6101b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04372024-01-01T00:00:00.000Z"fixture-6d6101b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04382024-01-01T00:00:00.000Z"fixture-6d6101b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04392024-01-01T00:00:00.000Z"fixture-6d6101b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04402024-01-01T00:00:00.000Z"fixture-6d6101b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04412024-01-01T00:00:00.000Z"fixture-6d6101b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04422024-01-01T00:00:00.000Z"fixture-6d6101ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04432024-01-01T00:00:00.000Z"fixture-6d6101bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04442024-01-01T00:00:00.000Z"fixture-6d6101bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04452024-01-01T00:00:00.000Z"fixture-6d6101bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04462024-01-01T00:00:00.000Z"fixture-6d6101be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04472024-01-01T00:00:00.000Z"fixture-6d6101bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04482024-01-01T00:00:00.000Z"fixture-6d6101c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04492024-01-01T00:00:00.000Z"fixture-6d6101c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04502024-01-01T00:00:00.000Z"fixture-6d6101c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04512024-01-01T00:00:00.000Z"fixture-6d6101c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04522024-01-01T00:00:00.000Z"fixture-6d6101c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04532024-01-01T00:00:00.000Z"fixture-6d6101c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04542024-01-01T00:00:00.000Z"fixture-6d6101c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04552024-01-01T00:00:00.000Z"fixture-6d6101c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04562024-01-01T00:00:00.000Z"fixture-6d6101c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04572024-01-01T00:00:00.000Z"fixture-6d6101c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04582024-01-01T00:00:00.000Z"fixture-6d6101ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04592024-01-01T00:00:00.000Z"fixture-6d6101cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04602024-01-01T00:00:00.000Z"fixture-6d6101cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04612024-01-01T00:00:00.000Z"fixture-6d6101cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04622024-01-01T00:00:00.000Z"fixture-6d6101ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04632024-01-01T00:00:00.000Z"fixture-6d6101cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04642024-01-01T00:00:00.000Z"fixture-6d6101d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04652024-01-01T00:00:00.000Z"fixture-6d6101d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04662024-01-01T00:00:00.000Z"fixture-6d6101d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04672024-01-01T00:00:00.000Z"fixture-6d6101d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04682024-01-01T00:00:00.000Z"fixture-6d6101d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04692024-01-01T00:00:00.000Z"fixture-6d6101d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04702024-01-01T00:00:00.000Z"fixture-6d6101d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04712024-01-01T00:00:00.000Z"fixture-6d6101d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04722024-01-01T00:00:00.000Z"fixture-6d6101d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04732024-01-01T00:00:00.000Z"fixture-6d6101d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04742024-01-01T00:00:00.000Z"fixture-6d6101da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04752024-01-01T00:00:00.000Z"fixture-6d6101db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04762024-01-01T00:00:00.000Z"fixture-6d6101dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04772024-01-01T00:00:00.000Z"fixture-6d6101dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04782024-01-01T00:00:00.000Z"fixture-6d6101de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04792024-01-01T00:00:00.000Z"fixture-6d6101df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04802024-01-01T00:00:00.000Z"fixture-6d6101e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04812024-01-01T00:00:00.000Z"fixture-6d6101e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04822024-01-01T00:00:00.000Z"fixture-6d6101e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04832024-01-01T00:00:00.000Z"fixture-6d6101e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04842024-01-01T00:00:00.000Z"fixture-6d6101e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04852024-01-01T00:00:00.000Z"fixture-6d6101e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04862024-01-01T00:00:00.000Z"fixture-6d6101e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04872024-01-01T00:00:00.000Z"fixture-6d6101e7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04882024-01-01T00:00:00.000Z"fixture-6d6101e8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04892024-01-01T00:00:00.000Z"fixture-6d6101e9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04902024-01-01T00:00:00.000Z"fixture-6d6101ea"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04912024-01-01T00:00:00.000Z"fixture-6d6101eb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04922024-01-01T00:00:00.000Z"fixture-6d6101ec"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04932024-01-01T00:00:00.000Z"fixture-6d6101ed"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04942024-01-01T00:00:00.000Z"fixture-6d6101ee"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04952024-01-01T00:00:00.000Z"fixture-6d6101ef"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04962024-01-01T00:00:00.000Z"fixture-6d6101f0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04972024-01-01T00:00:00.000Z"fixture-6d6101f1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04982024-01-01T00:00:00.000Z"fixture-6d6101f2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04992024-01-01T00:00:00.000Z"fixture-6d6101f3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05002024-01-01T00:00:00.000Z"fixture-6d6101f4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05012024-01-01T00:00:00.000Z"fixture-6d6101f5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05022024-01-01T00:00:00.000Z"fixture-6d6101f6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05032024-01-01T00:00:00.000Z"fixture-6d6101f7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05042024-01-01T00:00:00.000Z"fixture-6d6101f8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05052024-01-01T00:00:00.000Z"fixture-6d6101f9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05062024-01-01T00:00:00.000Z"fixture-6d6101fa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05072024-01-01T00:00:00.000Z"fixture-6d6101fb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05082024-01-01T00:00:00.000Z"fixture-6d6101fc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05092024-01-01T00:00:00.000Z"fixture-6d6101fd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05102024-01-01T00:00:00.000Z"fixture-6d6101fe"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05112024-01-01T00:00:00.000Z"fixture-6d6101ff"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05122024-01-01T00:00:00.000Z"fixture-6d610200"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05132024-01-01T00:00:00.000Z"fixture-6d610201"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05142024-01-01T00:00:00.000Z"fixture-6d610202"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05152024-01-01T00:00:00.000Z"fixture-6d610203"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05162024-01-01T00:00:00.000Z"fixture-6d610204"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05172024-01-01T00:00:00.000Z"fixture-6d610205"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05182024-01-01T00:00:00.000Z"fixture-6d610206"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05192024-01-01T00:00:00.000Z"fixture-6d610207"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05202024-01-01T00:00:00.000Z"fixture-6d610208"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05212024-01-01T00:00:00.000Z"fixture-6d610209"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05222024-01-01T00:00:00.000Z"fixture-6d61020a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05232024-01-01T00:00:00.000Z"fixture-6d61020b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05242024-01-01T00:00:00.000Z"fixture-6d61020c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05252024-01-01T00:00:00.000Z"fixture-6d61020d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05262024-01-01T00:00:00.000Z"fixture-6d61020e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05272024-01-01T00:00:00.000Z"fixture-6d61020f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05282024-01-01T00:00:00.000Z"fixture-6d610210"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05292024-01-01T00:00:00.000Z"fixture-6d610211"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05302024-01-01T00:00:00.000Z"fixture-6d610212"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05312024-01-01T00:00:00.000Z"fixture-6d610213"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05322024-01-01T00:00:00.000Z"fixture-6d610214"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05332024-01-01T00:00:00.000Z"fixture-6d610215"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05342024-01-01T00:00:00.000Z"fixture-6d610216"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05352024-01-01T00:00:00.000Z"fixture-6d610217"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05362024-01-01T00:00:00.000Z"fixture-6d610218"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05372024-01-01T00:00:00.000Z"fixture-6d610219"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05382024-01-01T00:00:00.000Z"fixture-6d61021a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05392024-01-01T00:00:00.000Z"fixture-6d61021b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05402024-01-01T00:00:00.000Z"fixture-6d61021c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05412024-01-01T00:00:00.000Z"fixture-6d61021d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05422024-01-01T00:00:00.000Z"fixture-6d61021e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05432024-01-01T00:00:00.000Z"fixture-6d61021f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05442024-01-01T00:00:00.000Z"fixture-6d610220"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05452024-01-01T00:00:00.000Z"fixture-6d610221"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05462024-01-01T00:00:00.000Z"fixture-6d610222"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05472024-01-01T00:00:00.000Z"fixture-6d610223"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05482024-01-01T00:00:00.000Z"fixture-6d610224"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05492024-01-01T00:00:00.000Z"fixture-6d610225"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05502024-01-01T00:00:00.000Z"fixture-6d610226"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05512024-01-01T00:00:00.000Z"fixture-6d610227"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05522024-01-01T00:00:00.000Z"fixture-6d610228"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05532024-01-01T00:00:00.000Z"fixture-6d610229"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05542024-01-01T00:00:00.000Z"fixture-6d61022a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05552024-01-01T00:00:00.000Z"fixture-6d61022b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05562024-01-01T00:00:00.000Z"fixture-6d61022c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05572024-01-01T00:00:00.000Z"fixture-6d61022d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05582024-01-01T00:00:00.000Z"fixture-6d61022e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05592024-01-01T00:00:00.000Z"fixture-6d61022f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05602024-01-01T00:00:00.000Z"fixture-6d610230"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05612024-01-01T00:00:00.000Z"fixture-6d610231"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05622024-01-01T00:00:00.000Z"fixture-6d610232"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05632024-01-01T00:00:00.000Z"fixture-6d610233"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05642024-01-01T00:00:00.000Z"fixture-6d610234"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05652024-01-01T00:00:00.000Z"fixture-6d610235"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05662024-01-01T00:00:00.000Z"fixture-6d610236"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05672024-01-01T00:00:00.000Z"fixture-6d610237"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05682024-01-01T00:00:00.000Z"fixture-6d610238"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05692024-01-01T00:00:00.000Z"fixture-6d610239"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05702024-01-01T00:00:00.000Z"fixture-6d61023a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05712024-01-01T00:00:00.000Z"fixture-6d61023b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05722024-01-01T00:00:00.000Z"fixture-6d61023c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05732024-01-01T00:00:00.000Z"fixture-6d61023d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05742024-01-01T00:00:00.000Z"fixture-6d61023e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05752024-01-01T00:00:00.000Z"fixture-6d61023f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05762024-01-01T00:00:00.000Z"fixture-6d610240"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05772024-01-01T00:00:00.000Z"fixture-6d610241"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05782024-01-01T00:00:00.000Z"fixture-6d610242"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05792024-01-01T00:00:00.000Z"fixture-6d610243"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05802024-01-01T00:00:00.000Z"fixture-6d610244"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05812024-01-01T00:00:00.000Z"fixture-6d610245"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05822024-01-01T00:00:00.000Z"fixture-6d610246"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05832024-01-01T00:00:00.000Z"fixture-6d610247"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05842024-01-01T00:00:00.000Z"fixture-6d610248"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05852024-01-01T00:00:00.000Z"fixture-6d610249"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05862024-01-01T00:00:00.000Z"fixture-6d61024a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05872024-01-01T00:00:00.000Z"fixture-6d61024b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05882024-01-01T00:00:00.000Z"fixture-6d61024c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05892024-01-01T00:00:00.000Z"fixture-6d61024d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05902024-01-01T00:00:00.000Z"fixture-6d61024e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05912024-01-01T00:00:00.000Z"fixture-6d61024f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05922024-01-01T00:00:00.000Z"fixture-6d610250"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05932024-01-01T00:00:00.000Z"fixture-6d610251"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05942024-01-01T00:00:00.000Z"fixture-6d610252"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05952024-01-01T00:00:00.000Z"fixture-6d610253"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05962024-01-01T00:00:00.000Z"fixture-6d610254"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05972024-01-01T00:00:00.000Z"fixture-6d610255"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05982024-01-01T00:00:00.000Z"fixture-6d610256"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05992024-01-01T00:00:00.000Z"fixture-6d610257"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06002024-01-01T00:00:00.000Z"fixture-6d610258"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06012024-01-01T00:00:00.000Z"fixture-6d610259"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06022024-01-01T00:00:00.000Z"fixture-6d61025a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06032024-01-01T00:00:00.000Z"fixture-6d61025b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06042024-01-01T00:00:00.000Z"fixture-6d61025c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06052024-01-01T00:00:00.000Z"fixture-6d61025d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06062024-01-01T00:00:00.000Z"fixture-6d61025e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06072024-01-01T00:00:00.000Z"fixture-6d61025f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06082024-01-01T00:00:00.000Z"fixture-6d610260"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06092024-01-01T00:00:00.000Z"fixture-6d610261"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06102024-01-01T00:00:00.000Z"fixture-6d610262"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06112024-01-01T00:00:00.000Z"fixture-6d610263"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06122024-01-01T00:00:00.000Z"fixture-6d610264"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06132024-01-01T00:00:00.000Z"fixture-6d610265"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06142024-01-01T00:00:00.000Z"fixture-6d610266"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06152024-01-01T00:00:00.000Z"fixture-6d610267"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06162024-01-01T00:00:00.000Z"fixture-6d610268"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06172024-01-01T00:00:00.000Z"fixture-6d610269"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06182024-01-01T00:00:00.000Z"fixture-6d61026a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06192024-01-01T00:00:00.000Z"fixture-6d61026b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06202024-01-01T00:00:00.000Z"fixture-6d61026c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06212024-01-01T00:00:00.000Z"fixture-6d61026d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06222024-01-01T00:00:00.000Z"fixture-6d61026e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06232024-01-01T00:00:00.000Z"fixture-6d61026f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06242024-01-01T00:00:00.000Z"fixture-6d610270"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06252024-01-01T00:00:00.000Z"fixture-6d610271"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06262024-01-01T00:00:00.000Z"fixture-6d610272"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06272024-01-01T00:00:00.000Z"fixture-6d610273"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06282024-01-01T00:00:00.000Z"fixture-6d610274"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06292024-01-01T00:00:00.000Z"fixture-6d610275"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06302024-01-01T00:00:00.000Z"fixture-6d610276"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06312024-01-01T00:00:00.000Z"fixture-6d610277"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06322024-01-01T00:00:00.000Z"fixture-6d610278"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06332024-01-01T00:00:00.000Z"fixture-6d610279"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06342024-01-01T00:00:00.000Z"fixture-6d61027a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06352024-01-01T00:00:00.000Z"fixture-6d61027b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06362024-01-01T00:00:00.000Z"fixture-6d61027c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06372024-01-01T00:00:00.000Z"fixture-6d61027d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06382024-01-01T00:00:00.000Z"fixture-6d61027e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06392024-01-01T00:00:00.000Z"fixture-6d61027f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06402024-01-01T00:00:00.000Z"fixture-6d610280"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06412024-01-01T00:00:00.000Z"fixture-6d610281"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06422024-01-01T00:00:00.000Z"fixture-6d610282"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06432024-01-01T00:00:00.000Z"fixture-6d610283"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06442024-01-01T00:00:00.000Z"fixture-6d610284"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06452024-01-01T00:00:00.000Z"fixture-6d610285"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06462024-01-01T00:00:00.000Z"fixture-6d610286"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06472024-01-01T00:00:00.000Z"fixture-6d610287"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06482024-01-01T00:00:00.000Z"fixture-6d610288"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06492024-01-01T00:00:00.000Z"fixture-6d610289"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06502024-01-01T00:00:00.000Z"fixture-6d61028a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06512024-01-01T00:00:00.000Z"fixture-6d61028b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06522024-01-01T00:00:00.000Z"fixture-6d61028c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06532024-01-01T00:00:00.000Z"fixture-6d61028d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06542024-01-01T00:00:00.000Z"fixture-6d61028e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06552024-01-01T00:00:00.000Z"fixture-6d61028f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06562024-01-01T00:00:00.000Z"fixture-6d610290"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06572024-01-01T00:00:00.000Z"fixture-6d610291"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06582024-01-01T00:00:00.000Z"fixture-6d610292"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06592024-01-01T00:00:00.000Z"fixture-6d610293"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06602024-01-01T00:00:00.000Z"fixture-6d610294"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06612024-01-01T00:00:00.000Z"fixture-6d610295"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06622024-01-01T00:00:00.000Z"fixture-6d610296"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06632024-01-01T00:00:00.000Z"fixture-6d610297"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06642024-01-01T00:00:00.000Z"fixture-6d610298"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06652024-01-01T00:00:00.000Z"fixture-6d610299"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06662024-01-01T00:00:00.000Z"fixture-6d61029a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06672024-01-01T00:00:00.000Z"fixture-6d61029b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06682024-01-01T00:00:00.000Z"fixture-6d61029c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06692024-01-01T00:00:00.000Z"fixture-6d61029d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06702024-01-01T00:00:00.000Z"fixture-6d61029e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06712024-01-01T00:00:00.000Z"fixture-6d61029f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06722024-01-01T00:00:00.000Z"fixture-6d6102a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06732024-01-01T00:00:00.000Z"fixture-6d6102a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06742024-01-01T00:00:00.000Z"fixture-6d6102a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06752024-01-01T00:00:00.000Z"fixture-6d6102a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06762024-01-01T00:00:00.000Z"fixture-6d6102a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06772024-01-01T00:00:00.000Z"fixture-6d6102a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06782024-01-01T00:00:00.000Z"fixture-6d6102a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06792024-01-01T00:00:00.000Z"fixture-6d6102a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06802024-01-01T00:00:00.000Z"fixture-6d6102a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06812024-01-01T00:00:00.000Z"fixture-6d6102a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06822024-01-01T00:00:00.000Z"fixture-6d6102aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06832024-01-01T00:00:00.000Z"fixture-6d6102ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06842024-01-01T00:00:00.000Z"fixture-6d6102ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06852024-01-01T00:00:00.000Z"fixture-6d6102ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06862024-01-01T00:00:00.000Z"fixture-6d6102ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06872024-01-01T00:00:00.000Z"fixture-6d6102af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06882024-01-01T00:00:00.000Z"fixture-6d6102b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06892024-01-01T00:00:00.000Z"fixture-6d6102b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06902024-01-01T00:00:00.000Z"fixture-6d6102b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06912024-01-01T00:00:00.000Z"fixture-6d6102b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06922024-01-01T00:00:00.000Z"fixture-6d6102b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06932024-01-01T00:00:00.000Z"fixture-6d6102b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06942024-01-01T00:00:00.000Z"fixture-6d6102b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06952024-01-01T00:00:00.000Z"fixture-6d6102b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06962024-01-01T00:00:00.000Z"fixture-6d6102b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06972024-01-01T00:00:00.000Z"fixture-6d6102b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06982024-01-01T00:00:00.000Z"fixture-6d6102ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06992024-01-01T00:00:00.000Z"fixture-6d6102bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07002024-01-01T00:00:00.000Z"fixture-6d6102bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07012024-01-01T00:00:00.000Z"fixture-6d6102bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07022024-01-01T00:00:00.000Z"fixture-6d6102be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07032024-01-01T00:00:00.000Z"fixture-6d6102bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07042024-01-01T00:00:00.000Z"fixture-6d6102c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07052024-01-01T00:00:00.000Z"fixture-6d6102c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07062024-01-01T00:00:00.000Z"fixture-6d6102c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07072024-01-01T00:00:00.000Z"fixture-6d6102c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07082024-01-01T00:00:00.000Z"fixture-6d6102c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07092024-01-01T00:00:00.000Z"fixture-6d6102c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07102024-01-01T00:00:00.000Z"fixture-6d6102c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07112024-01-01T00:00:00.000Z"fixture-6d6102c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07122024-01-01T00:00:00.000Z"fixture-6d6102c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07132024-01-01T00:00:00.000Z"fixture-6d6102c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07142024-01-01T00:00:00.000Z"fixture-6d6102ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07152024-01-01T00:00:00.000Z"fixture-6d6102cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07162024-01-01T00:00:00.000Z"fixture-6d6102cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07172024-01-01T00:00:00.000Z"fixture-6d6102cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07182024-01-01T00:00:00.000Z"fixture-6d6102ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07192024-01-01T00:00:00.000Z"fixture-6d6102cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07202024-01-01T00:00:00.000Z"fixture-6d6102d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07212024-01-01T00:00:00.000Z"fixture-6d6102d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07222024-01-01T00:00:00.000Z"fixture-6d6102d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07232024-01-01T00:00:00.000Z"fixture-6d6102d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07242024-01-01T00:00:00.000Z"fixture-6d6102d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07252024-01-01T00:00:00.000Z"fixture-6d6102d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07262024-01-01T00:00:00.000Z"fixture-6d6102d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07272024-01-01T00:00:00.000Z"fixture-6d6102d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07282024-01-01T00:00:00.000Z"fixture-6d6102d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07292024-01-01T00:00:00.000Z"fixture-6d6102d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07302024-01-01T00:00:00.000Z"fixture-6d6102da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07312024-01-01T00:00:00.000Z"fixture-6d6102db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07322024-01-01T00:00:00.000Z"fixture-6d6102dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07332024-01-01T00:00:00.000Z"fixture-6d6102dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07342024-01-01T00:00:00.000Z"fixture-6d6102de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07352024-01-01T00:00:00.000Z"fixture-6d6102df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07362024-01-01T00:00:00.000Z"fixture-6d6102e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07372024-01-01T00:00:00.000Z"fixture-6d6102e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07382024-01-01T00:00:00.000Z"fixture-6d6102e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07392024-01-01T00:00:00.000Z"fixture-6d6102e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07402024-01-01T00:00:00.000Z"fixture-6d6102e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07412024-01-01T00:00:00.000Z"fixture-6d6102e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07422024-01-01T00:00:00.000Z"fixture-6d6102e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07432024-01-01T00:00:00.000Z"fixture-6d6102e7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07442024-01-01T00:00:00.000Z"fixture-6d6102e8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07452024-01-01T00:00:00.000Z"fixture-6d6102e9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07462024-01-01T00:00:00.000Z"fixture-6d6102ea"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07472024-01-01T00:00:00.000Z"fixture-6d6102eb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07482024-01-01T00:00:00.000Z"fixture-6d6102ec"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07492024-01-01T00:00:00.000Z"fixture-6d6102ed"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07502024-01-01T00:00:00.000Z"fixture-6d6102ee"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07512024-01-01T00:00:00.000Z"fixture-6d6102ef"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07522024-01-01T00:00:00.000Z"fixture-6d6102f0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07532024-01-01T00:00:00.000Z"fixture-6d6102f1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07542024-01-01T00:00:00.000Z"fixture-6d6102f2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07552024-01-01T00:00:00.000Z"fixture-6d6102f3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07562024-01-01T00:00:00.000Z"fixture-6d6102f4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07572024-01-01T00:00:00.000Z"fixture-6d6102f5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07582024-01-01T00:00:00.000Z"fixture-6d6102f6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07592024-01-01T00:00:00.000Z"fixture-6d6102f7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07602024-01-01T00:00:00.000Z"fixture-6d6102f8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07612024-01-01T00:00:00.000Z"fixture-6d6102f9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07622024-01-01T00:00:00.000Z"fixture-6d6102fa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07632024-01-01T00:00:00.000Z"fixture-6d6102fb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07642024-01-01T00:00:00.000Z"fixture-6d6102fc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07652024-01-01T00:00:00.000Z"fixture-6d6102fd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07662024-01-01T00:00:00.000Z"fixture-6d6102fe"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07672024-01-01T00:00:00.000Z"fixture-6d6102ff"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07682024-01-01T00:00:00.000Z"fixture-6d610300"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07692024-01-01T00:00:00.000Z"fixture-6d610301"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07702024-01-01T00:00:00.000Z"fixture-6d610302"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07712024-01-01T00:00:00.000Z"fixture-6d610303"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07722024-01-01T00:00:00.000Z"fixture-6d610304"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07732024-01-01T00:00:00.000Z"fixture-6d610305"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07742024-01-01T00:00:00.000Z"fixture-6d610306"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07752024-01-01T00:00:00.000Z"fixture-6d610307"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07762024-01-01T00:00:00.000Z"fixture-6d610308"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07772024-01-01T00:00:00.000Z"fixture-6d610309"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07782024-01-01T00:00:00.000Z"fixture-6d61030a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07792024-01-01T00:00:00.000Z"fixture-6d61030b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07802024-01-01T00:00:00.000Z"fixture-6d61030c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07812024-01-01T00:00:00.000Z"fixture-6d61030d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07822024-01-01T00:00:00.000Z"fixture-6d61030e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07832024-01-01T00:00:00.000Z"fixture-6d61030f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07842024-01-01T00:00:00.000Z"fixture-6d610310"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07852024-01-01T00:00:00.000Z"fixture-6d610311"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07862024-01-01T00:00:00.000Z"fixture-6d610312"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07872024-01-01T00:00:00.000Z"fixture-6d610313"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07882024-01-01T00:00:00.000Z"fixture-6d610314"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07892024-01-01T00:00:00.000Z"fixture-6d610315"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07902024-01-01T00:00:00.000Z"fixture-6d610316"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07912024-01-01T00:00:00.000Z"fixture-6d610317"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07922024-01-01T00:00:00.000Z"fixture-6d610318"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07932024-01-01T00:00:00.000Z"fixture-6d610319"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07942024-01-01T00:00:00.000Z"fixture-6d61031a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07952024-01-01T00:00:00.000Z"fixture-6d61031b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07962024-01-01T00:00:00.000Z"fixture-6d61031c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07972024-01-01T00:00:00.000Z"fixture-6d61031d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07982024-01-01T00:00:00.000Z"fixture-6d61031e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07992024-01-01T00:00:00.000Z"fixture-6d61031f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08002024-01-01T00:00:00.000Z"fixture-6d610320"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08012024-01-01T00:00:00.000Z"fixture-6d610321"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08022024-01-01T00:00:00.000Z"fixture-6d610322"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08032024-01-01T00:00:00.000Z"fixture-6d610323"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08042024-01-01T00:00:00.000Z"fixture-6d610324"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08052024-01-01T00:00:00.000Z"fixture-6d610325"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08062024-01-01T00:00:00.000Z"fixture-6d610326"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08072024-01-01T00:00:00.000Z"fixture-6d610327"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08082024-01-01T00:00:00.000Z"fixture-6d610328"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08092024-01-01T00:00:00.000Z"fixture-6d610329"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08102024-01-01T00:00:00.000Z"fixture-6d61032a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08112024-01-01T00:00:00.000Z"fixture-6d61032b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08122024-01-01T00:00:00.000Z"fixture-6d61032c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08132024-01-01T00:00:00.000Z"fixture-6d61032d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08142024-01-01T00:00:00.000Z"fixture-6d61032e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08152024-01-01T00:00:00.000Z"fixture-6d61032f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08162024-01-01T00:00:00.000Z"fixture-6d610330"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08172024-01-01T00:00:00.000Z"fixture-6d610331"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08182024-01-01T00:00:00.000Z"fixture-6d610332"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08192024-01-01T00:00:00.000Z"fixture-6d610333"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08202024-01-01T00:00:00.000Z"fixture-6d610334"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08212024-01-01T00:00:00.000Z"fixture-6d610335"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08222024-01-01T00:00:00.000Z"fixture-6d610336"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08232024-01-01T00:00:00.000Z"fixture-6d610337"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08242024-01-01T00:00:00.000Z"fixture-6d610338"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08252024-01-01T00:00:00.000Z"fixture-6d610339"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08262024-01-01T00:00:00.000Z"fixture-6d61033a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08272024-01-01T00:00:00.000Z"fixture-6d61033b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08282024-01-01T00:00:00.000Z"fixture-6d61033c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08292024-01-01T00:00:00.000Z"fixture-6d61033d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08302024-01-01T00:00:00.000Z"fixture-6d61033e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08312024-01-01T00:00:00.000Z"fixture-6d61033f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08322024-01-01T00:00:00.000Z"fixture-6d610340"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08332024-01-01T00:00:00.000Z"fixture-6d610341"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08342024-01-01T00:00:00.000Z"fixture-6d610342"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08352024-01-01T00:00:00.000Z"fixture-6d610343"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08362024-01-01T00:00:00.000Z"fixture-6d610344"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08372024-01-01T00:00:00.000Z"fixture-6d610345"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08382024-01-01T00:00:00.000Z"fixture-6d610346"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08392024-01-01T00:00:00.000Z"fixture-6d610347"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08402024-01-01T00:00:00.000Z"fixture-6d610348"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08412024-01-01T00:00:00.000Z"fixture-6d610349"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08422024-01-01T00:00:00.000Z"fixture-6d61034a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08432024-01-01T00:00:00.000Z"fixture-6d61034b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08442024-01-01T00:00:00.000Z"fixture-6d61034c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08452024-01-01T00:00:00.000Z"fixture-6d61034d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08462024-01-01T00:00:00.000Z"fixture-6d61034e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08472024-01-01T00:00:00.000Z"fixture-6d61034f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08482024-01-01T00:00:00.000Z"fixture-6d610350"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08492024-01-01T00:00:00.000Z"fixture-6d610351"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08502024-01-01T00:00:00.000Z"fixture-6d610352"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08512024-01-01T00:00:00.000Z"fixture-6d610353"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08522024-01-01T00:00:00.000Z"fixture-6d610354"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08532024-01-01T00:00:00.000Z"fixture-6d610355"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08542024-01-01T00:00:00.000Z"fixture-6d610356"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08552024-01-01T00:00:00.000Z"fixture-6d610357"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08562024-01-01T00:00:00.000Z"fixture-6d610358"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08572024-01-01T00:00:00.000Z"fixture-6d610359"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08582024-01-01T00:00:00.000Z"fixture-6d61035a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08592024-01-01T00:00:00.000Z"fixture-6d61035b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08602024-01-01T00:00:00.000Z"fixture-6d61035c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08612024-01-01T00:00:00.000Z"fixture-6d61035d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08622024-01-01T00:00:00.000Z"fixture-6d61035e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08632024-01-01T00:00:00.000Z"fixture-6d61035f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08642024-01-01T00:00:00.000Z"fixture-6d610360"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08652024-01-01T00:00:00.000Z"fixture-6d610361"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08662024-01-01T00:00:00.000Z"fixture-6d610362"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08672024-01-01T00:00:00.000Z"fixture-6d610363"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08682024-01-01T00:00:00.000Z"fixture-6d610364"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08692024-01-01T00:00:00.000Z"fixture-6d610365"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08702024-01-01T00:00:00.000Z"fixture-6d610366"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08712024-01-01T00:00:00.000Z"fixture-6d610367"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08722024-01-01T00:00:00.000Z"fixture-6d610368"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08732024-01-01T00:00:00.000Z"fixture-6d610369"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08742024-01-01T00:00:00.000Z"fixture-6d61036a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08752024-01-01T00:00:00.000Z"fixture-6d61036b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08762024-01-01T00:00:00.000Z"fixture-6d61036c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08772024-01-01T00:00:00.000Z"fixture-6d61036d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08782024-01-01T00:00:00.000Z"fixture-6d61036e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08792024-01-01T00:00:00.000Z"fixture-6d61036f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08802024-01-01T00:00:00.000Z"fixture-6d610370"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08812024-01-01T00:00:00.000Z"fixture-6d610371"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08822024-01-01T00:00:00.000Z"fixture-6d610372"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08832024-01-01T00:00:00.000Z"fixture-6d610373"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08842024-01-01T00:00:00.000Z"fixture-6d610374"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08852024-01-01T00:00:00.000Z"fixture-6d610375"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08862024-01-01T00:00:00.000Z"fixture-6d610376"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08872024-01-01T00:00:00.000Z"fixture-6d610377"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08882024-01-01T00:00:00.000Z"fixture-6d610378"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08892024-01-01T00:00:00.000Z"fixture-6d610379"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08902024-01-01T00:00:00.000Z"fixture-6d61037a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08912024-01-01T00:00:00.000Z"fixture-6d61037b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08922024-01-01T00:00:00.000Z"fixture-6d61037c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08932024-01-01T00:00:00.000Z"fixture-6d61037d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08942024-01-01T00:00:00.000Z"fixture-6d61037e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08952024-01-01T00:00:00.000Z"fixture-6d61037f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08962024-01-01T00:00:00.000Z"fixture-6d610380"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08972024-01-01T00:00:00.000Z"fixture-6d610381"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08982024-01-01T00:00:00.000Z"fixture-6d610382"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08992024-01-01T00:00:00.000Z"fixture-6d610383"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09002024-01-01T00:00:00.000Z"fixture-6d610384"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09012024-01-01T00:00:00.000Z"fixture-6d610385"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09022024-01-01T00:00:00.000Z"fixture-6d610386"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09032024-01-01T00:00:00.000Z"fixture-6d610387"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09042024-01-01T00:00:00.000Z"fixture-6d610388"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09052024-01-01T00:00:00.000Z"fixture-6d610389"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09062024-01-01T00:00:00.000Z"fixture-6d61038a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09072024-01-01T00:00:00.000Z"fixture-6d61038b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09082024-01-01T00:00:00.000Z"fixture-6d61038c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09092024-01-01T00:00:00.000Z"fixture-6d61038d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09102024-01-01T00:00:00.000Z"fixture-6d61038e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09112024-01-01T00:00:00.000Z"fixture-6d61038f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09122024-01-01T00:00:00.000Z"fixture-6d610390"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09132024-01-01T00:00:00.000Z"fixture-6d610391"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09142024-01-01T00:00:00.000Z"fixture-6d610392"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09152024-01-01T00:00:00.000Z"fixture-6d610393"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09162024-01-01T00:00:00.000Z"fixture-6d610394"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09172024-01-01T00:00:00.000Z"fixture-6d610395"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09182024-01-01T00:00:00.000Z"fixture-6d610396"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09192024-01-01T00:00:00.000Z"fixture-6d610397"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09202024-01-01T00:00:00.000Z"fixture-6d610398"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09212024-01-01T00:00:00.000Z"fixture-6d610399"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09222024-01-01T00:00:00.000Z"fixture-6d61039a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09232024-01-01T00:00:00.000Z"fixture-6d61039b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09242024-01-01T00:00:00.000Z"fixture-6d61039c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09252024-01-01T00:00:00.000Z"fixture-6d61039d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09262024-01-01T00:00:00.000Z"fixture-6d61039e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09272024-01-01T00:00:00.000Z"fixture-6d61039f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09282024-01-01T00:00:00.000Z"fixture-6d6103a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09292024-01-01T00:00:00.000Z"fixture-6d6103a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09302024-01-01T00:00:00.000Z"fixture-6d6103a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09312024-01-01T00:00:00.000Z"fixture-6d6103a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09322024-01-01T00:00:00.000Z"fixture-6d6103a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09332024-01-01T00:00:00.000Z"fixture-6d6103a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09342024-01-01T00:00:00.000Z"fixture-6d6103a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09352024-01-01T00:00:00.000Z"fixture-6d6103a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09362024-01-01T00:00:00.000Z"fixture-6d6103a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09372024-01-01T00:00:00.000Z"fixture-6d6103a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09382024-01-01T00:00:00.000Z"fixture-6d6103aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09392024-01-01T00:00:00.000Z"fixture-6d6103ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09402024-01-01T00:00:00.000Z"fixture-6d6103ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09412024-01-01T00:00:00.000Z"fixture-6d6103ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09422024-01-01T00:00:00.000Z"fixture-6d6103ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09432024-01-01T00:00:00.000Z"fixture-6d6103af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09442024-01-01T00:00:00.000Z"fixture-6d6103b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09452024-01-01T00:00:00.000Z"fixture-6d6103b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09462024-01-01T00:00:00.000Z"fixture-6d6103b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09472024-01-01T00:00:00.000Z"fixture-6d6103b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09482024-01-01T00:00:00.000Z"fixture-6d6103b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09492024-01-01T00:00:00.000Z"fixture-6d6103b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09502024-01-01T00:00:00.000Z"fixture-6d6103b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09512024-01-01T00:00:00.000Z"fixture-6d6103b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09522024-01-01T00:00:00.000Z"fixture-6d6103b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09532024-01-01T00:00:00.000Z"fixture-6d6103b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09542024-01-01T00:00:00.000Z"fixture-6d6103ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09552024-01-01T00:00:00.000Z"fixture-6d6103bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09562024-01-01T00:00:00.000Z"fixture-6d6103bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09572024-01-01T00:00:00.000Z"fixture-6d6103bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09582024-01-01T00:00:00.000Z"fixture-6d6103be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09592024-01-01T00:00:00.000Z"fixture-6d6103bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09602024-01-01T00:00:00.000Z"fixture-6d6103c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09612024-01-01T00:00:00.000Z"fixture-6d6103c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09622024-01-01T00:00:00.000Z"fixture-6d6103c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09632024-01-01T00:00:00.000Z"fixture-6d6103c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09642024-01-01T00:00:00.000Z"fixture-6d6103c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09652024-01-01T00:00:00.000Z"fixture-6d6103c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09662024-01-01T00:00:00.000Z"fixture-6d6103c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09672024-01-01T00:00:00.000Z"fixture-6d6103c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09682024-01-01T00:00:00.000Z"fixture-6d6103c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09692024-01-01T00:00:00.000Z"fixture-6d6103c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09702024-01-01T00:00:00.000Z"fixture-6d6103ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09712024-01-01T00:00:00.000Z"fixture-6d6103cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09722024-01-01T00:00:00.000Z"fixture-6d6103cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09732024-01-01T00:00:00.000Z"fixture-6d6103cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09742024-01-01T00:00:00.000Z"fixture-6d6103ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09752024-01-01T00:00:00.000Z"fixture-6d6103cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09762024-01-01T00:00:00.000Z"fixture-6d6103d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09772024-01-01T00:00:00.000Z"fixture-6d6103d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09782024-01-01T00:00:00.000Z"fixture-6d6103d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09792024-01-01T00:00:00.000Z"fixture-6d6103d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09802024-01-01T00:00:00.000Z"fixture-6d6103d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09812024-01-01T00:00:00.000Z"fixture-6d6103d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09822024-01-01T00:00:00.000Z"fixture-6d6103d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09832024-01-01T00:00:00.000Z"fixture-6d6103d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09842024-01-01T00:00:00.000Z"fixture-6d6103d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09852024-01-01T00:00:00.000Z"fixture-6d6103d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09862024-01-01T00:00:00.000Z"fixture-6d6103da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09872024-01-01T00:00:00.000Z"fixture-6d6103db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09882024-01-01T00:00:00.000Z"fixture-6d6103dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09892024-01-01T00:00:00.000Z"fixture-6d6103dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09902024-01-01T00:00:00.000Z"fixture-6d6103de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09912024-01-01T00:00:00.000Z"fixture-6d6103df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09922024-01-01T00:00:00.000Z"fixture-6d6103e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09932024-01-01T00:00:00.000Z"fixture-6d6103e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09942024-01-01T00:00:00.000Z"fixture-6d6103e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09952024-01-01T00:00:00.000Z"fixture-6d6103e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09962024-01-01T00:00:00.000Z"fixture-6d6103e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09972024-01-01T00:00:00.000Z"fixture-6d6103e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09982024-01-01T00:00:00.000Z"fixture-6d6103e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09992024-01-01T00:00:00.000Z"fixture-6d6103e7"CRC64NVMEFULL_OBJECT1STANDARD"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
- },
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -102106,7 +140884,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -102114,7 +140892,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -102126,27 +140904,27 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "1"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/many/"
+ "value": "fixture-upload+/276ca18046f9="
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "url"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -102160,17 +140938,17 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=10001000urltrueobject-tests/many/00002024-01-01T00:00:00.000Z"fixture-6d610000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00012024-01-01T00:00:00.000Z"fixture-6d610001"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00022024-01-01T00:00:00.000Z"fixture-6d610002"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00032024-01-01T00:00:00.000Z"fixture-6d610003"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00042024-01-01T00:00:00.000Z"fixture-6d610004"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00052024-01-01T00:00:00.000Z"fixture-6d610005"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00062024-01-01T00:00:00.000Z"fixture-6d610006"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00072024-01-01T00:00:00.000Z"fixture-6d610007"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00082024-01-01T00:00:00.000Z"fixture-6d610008"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00092024-01-01T00:00:00.000Z"fixture-6d610009"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00102024-01-01T00:00:00.000Z"fixture-6d61000a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00112024-01-01T00:00:00.000Z"fixture-6d61000b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00122024-01-01T00:00:00.000Z"fixture-6d61000c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00132024-01-01T00:00:00.000Z"fixture-6d61000d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00142024-01-01T00:00:00.000Z"fixture-6d61000e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00152024-01-01T00:00:00.000Z"fixture-6d61000f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00162024-01-01T00:00:00.000Z"fixture-6d610010"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00172024-01-01T00:00:00.000Z"fixture-6d610011"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00182024-01-01T00:00:00.000Z"fixture-6d610012"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00192024-01-01T00:00:00.000Z"fixture-6d610013"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00202024-01-01T00:00:00.000Z"fixture-6d610014"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00212024-01-01T00:00:00.000Z"fixture-6d610015"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00222024-01-01T00:00:00.000Z"fixture-6d610016"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00232024-01-01T00:00:00.000Z"fixture-6d610017"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00242024-01-01T00:00:00.000Z"fixture-6d610018"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00252024-01-01T00:00:00.000Z"fixture-6d610019"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00262024-01-01T00:00:00.000Z"fixture-6d61001a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00272024-01-01T00:00:00.000Z"fixture-6d61001b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00282024-01-01T00:00:00.000Z"fixture-6d61001c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00292024-01-01T00:00:00.000Z"fixture-6d61001d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00302024-01-01T00:00:00.000Z"fixture-6d61001e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00312024-01-01T00:00:00.000Z"fixture-6d61001f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00322024-01-01T00:00:00.000Z"fixture-6d610020"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00332024-01-01T00:00:00.000Z"fixture-6d610021"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00342024-01-01T00:00:00.000Z"fixture-6d610022"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00352024-01-01T00:00:00.000Z"fixture-6d610023"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00362024-01-01T00:00:00.000Z"fixture-6d610024"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00372024-01-01T00:00:00.000Z"fixture-6d610025"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00382024-01-01T00:00:00.000Z"fixture-6d610026"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00392024-01-01T00:00:00.000Z"fixture-6d610027"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00402024-01-01T00:00:00.000Z"fixture-6d610028"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00412024-01-01T00:00:00.000Z"fixture-6d610029"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00422024-01-01T00:00:00.000Z"fixture-6d61002a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00432024-01-01T00:00:00.000Z"fixture-6d61002b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00442024-01-01T00:00:00.000Z"fixture-6d61002c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00452024-01-01T00:00:00.000Z"fixture-6d61002d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00462024-01-01T00:00:00.000Z"fixture-6d61002e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00472024-01-01T00:00:00.000Z"fixture-6d61002f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00482024-01-01T00:00:00.000Z"fixture-6d610030"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00492024-01-01T00:00:00.000Z"fixture-6d610031"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00502024-01-01T00:00:00.000Z"fixture-6d610032"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00512024-01-01T00:00:00.000Z"fixture-6d610033"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00522024-01-01T00:00:00.000Z"fixture-6d610034"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00532024-01-01T00:00:00.000Z"fixture-6d610035"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00542024-01-01T00:00:00.000Z"fixture-6d610036"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00552024-01-01T00:00:00.000Z"fixture-6d610037"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00562024-01-01T00:00:00.000Z"fixture-6d610038"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00572024-01-01T00:00:00.000Z"fixture-6d610039"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00582024-01-01T00:00:00.000Z"fixture-6d61003a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00592024-01-01T00:00:00.000Z"fixture-6d61003b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00602024-01-01T00:00:00.000Z"fixture-6d61003c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00612024-01-01T00:00:00.000Z"fixture-6d61003d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00622024-01-01T00:00:00.000Z"fixture-6d61003e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00632024-01-01T00:00:00.000Z"fixture-6d61003f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00642024-01-01T00:00:00.000Z"fixture-6d610040"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00652024-01-01T00:00:00.000Z"fixture-6d610041"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00662024-01-01T00:00:00.000Z"fixture-6d610042"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00672024-01-01T00:00:00.000Z"fixture-6d610043"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00682024-01-01T00:00:00.000Z"fixture-6d610044"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00692024-01-01T00:00:00.000Z"fixture-6d610045"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00702024-01-01T00:00:00.000Z"fixture-6d610046"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00712024-01-01T00:00:00.000Z"fixture-6d610047"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00722024-01-01T00:00:00.000Z"fixture-6d610048"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00732024-01-01T00:00:00.000Z"fixture-6d610049"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00742024-01-01T00:00:00.000Z"fixture-6d61004a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00752024-01-01T00:00:00.000Z"fixture-6d61004b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00762024-01-01T00:00:00.000Z"fixture-6d61004c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00772024-01-01T00:00:00.000Z"fixture-6d61004d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00782024-01-01T00:00:00.000Z"fixture-6d61004e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00792024-01-01T00:00:00.000Z"fixture-6d61004f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00802024-01-01T00:00:00.000Z"fixture-6d610050"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00812024-01-01T00:00:00.000Z"fixture-6d610051"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00822024-01-01T00:00:00.000Z"fixture-6d610052"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00832024-01-01T00:00:00.000Z"fixture-6d610053"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00842024-01-01T00:00:00.000Z"fixture-6d610054"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00852024-01-01T00:00:00.000Z"fixture-6d610055"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00862024-01-01T00:00:00.000Z"fixture-6d610056"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00872024-01-01T00:00:00.000Z"fixture-6d610057"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00882024-01-01T00:00:00.000Z"fixture-6d610058"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00892024-01-01T00:00:00.000Z"fixture-6d610059"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00902024-01-01T00:00:00.000Z"fixture-6d61005a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00912024-01-01T00:00:00.000Z"fixture-6d61005b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00922024-01-01T00:00:00.000Z"fixture-6d61005c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00932024-01-01T00:00:00.000Z"fixture-6d61005d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00942024-01-01T00:00:00.000Z"fixture-6d61005e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00952024-01-01T00:00:00.000Z"fixture-6d61005f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00962024-01-01T00:00:00.000Z"fixture-6d610060"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00972024-01-01T00:00:00.000Z"fixture-6d610061"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00982024-01-01T00:00:00.000Z"fixture-6d610062"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/00992024-01-01T00:00:00.000Z"fixture-6d610063"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01002024-01-01T00:00:00.000Z"fixture-6d610064"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01012024-01-01T00:00:00.000Z"fixture-6d610065"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01022024-01-01T00:00:00.000Z"fixture-6d610066"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01032024-01-01T00:00:00.000Z"fixture-6d610067"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01042024-01-01T00:00:00.000Z"fixture-6d610068"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01052024-01-01T00:00:00.000Z"fixture-6d610069"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01062024-01-01T00:00:00.000Z"fixture-6d61006a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01072024-01-01T00:00:00.000Z"fixture-6d61006b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01082024-01-01T00:00:00.000Z"fixture-6d61006c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01092024-01-01T00:00:00.000Z"fixture-6d61006d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01102024-01-01T00:00:00.000Z"fixture-6d61006e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01112024-01-01T00:00:00.000Z"fixture-6d61006f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01122024-01-01T00:00:00.000Z"fixture-6d610070"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01132024-01-01T00:00:00.000Z"fixture-6d610071"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01142024-01-01T00:00:00.000Z"fixture-6d610072"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01152024-01-01T00:00:00.000Z"fixture-6d610073"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01162024-01-01T00:00:00.000Z"fixture-6d610074"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01172024-01-01T00:00:00.000Z"fixture-6d610075"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01182024-01-01T00:00:00.000Z"fixture-6d610076"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01192024-01-01T00:00:00.000Z"fixture-6d610077"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01202024-01-01T00:00:00.000Z"fixture-6d610078"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01212024-01-01T00:00:00.000Z"fixture-6d610079"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01222024-01-01T00:00:00.000Z"fixture-6d61007a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01232024-01-01T00:00:00.000Z"fixture-6d61007b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01242024-01-01T00:00:00.000Z"fixture-6d61007c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01252024-01-01T00:00:00.000Z"fixture-6d61007d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01262024-01-01T00:00:00.000Z"fixture-6d61007e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01272024-01-01T00:00:00.000Z"fixture-6d61007f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01282024-01-01T00:00:00.000Z"fixture-6d610080"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01292024-01-01T00:00:00.000Z"fixture-6d610081"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01302024-01-01T00:00:00.000Z"fixture-6d610082"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01312024-01-01T00:00:00.000Z"fixture-6d610083"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01322024-01-01T00:00:00.000Z"fixture-6d610084"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01332024-01-01T00:00:00.000Z"fixture-6d610085"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01342024-01-01T00:00:00.000Z"fixture-6d610086"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01352024-01-01T00:00:00.000Z"fixture-6d610087"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01362024-01-01T00:00:00.000Z"fixture-6d610088"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01372024-01-01T00:00:00.000Z"fixture-6d610089"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01382024-01-01T00:00:00.000Z"fixture-6d61008a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01392024-01-01T00:00:00.000Z"fixture-6d61008b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01402024-01-01T00:00:00.000Z"fixture-6d61008c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01412024-01-01T00:00:00.000Z"fixture-6d61008d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01422024-01-01T00:00:00.000Z"fixture-6d61008e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01432024-01-01T00:00:00.000Z"fixture-6d61008f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01442024-01-01T00:00:00.000Z"fixture-6d610090"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01452024-01-01T00:00:00.000Z"fixture-6d610091"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01462024-01-01T00:00:00.000Z"fixture-6d610092"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01472024-01-01T00:00:00.000Z"fixture-6d610093"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01482024-01-01T00:00:00.000Z"fixture-6d610094"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01492024-01-01T00:00:00.000Z"fixture-6d610095"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01502024-01-01T00:00:00.000Z"fixture-6d610096"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01512024-01-01T00:00:00.000Z"fixture-6d610097"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01522024-01-01T00:00:00.000Z"fixture-6d610098"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01532024-01-01T00:00:00.000Z"fixture-6d610099"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01542024-01-01T00:00:00.000Z"fixture-6d61009a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01552024-01-01T00:00:00.000Z"fixture-6d61009b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01562024-01-01T00:00:00.000Z"fixture-6d61009c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01572024-01-01T00:00:00.000Z"fixture-6d61009d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01582024-01-01T00:00:00.000Z"fixture-6d61009e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01592024-01-01T00:00:00.000Z"fixture-6d61009f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01602024-01-01T00:00:00.000Z"fixture-6d6100a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01612024-01-01T00:00:00.000Z"fixture-6d6100a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01622024-01-01T00:00:00.000Z"fixture-6d6100a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01632024-01-01T00:00:00.000Z"fixture-6d6100a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01642024-01-01T00:00:00.000Z"fixture-6d6100a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01652024-01-01T00:00:00.000Z"fixture-6d6100a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01662024-01-01T00:00:00.000Z"fixture-6d6100a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01672024-01-01T00:00:00.000Z"fixture-6d6100a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01682024-01-01T00:00:00.000Z"fixture-6d6100a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01692024-01-01T00:00:00.000Z"fixture-6d6100a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01702024-01-01T00:00:00.000Z"fixture-6d6100aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01712024-01-01T00:00:00.000Z"fixture-6d6100ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01722024-01-01T00:00:00.000Z"fixture-6d6100ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01732024-01-01T00:00:00.000Z"fixture-6d6100ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01742024-01-01T00:00:00.000Z"fixture-6d6100ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01752024-01-01T00:00:00.000Z"fixture-6d6100af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01762024-01-01T00:00:00.000Z"fixture-6d6100b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01772024-01-01T00:00:00.000Z"fixture-6d6100b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01782024-01-01T00:00:00.000Z"fixture-6d6100b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01792024-01-01T00:00:00.000Z"fixture-6d6100b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01802024-01-01T00:00:00.000Z"fixture-6d6100b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01812024-01-01T00:00:00.000Z"fixture-6d6100b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01822024-01-01T00:00:00.000Z"fixture-6d6100b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01832024-01-01T00:00:00.000Z"fixture-6d6100b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01842024-01-01T00:00:00.000Z"fixture-6d6100b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01852024-01-01T00:00:00.000Z"fixture-6d6100b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01862024-01-01T00:00:00.000Z"fixture-6d6100ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01872024-01-01T00:00:00.000Z"fixture-6d6100bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01882024-01-01T00:00:00.000Z"fixture-6d6100bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01892024-01-01T00:00:00.000Z"fixture-6d6100bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01902024-01-01T00:00:00.000Z"fixture-6d6100be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01912024-01-01T00:00:00.000Z"fixture-6d6100bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01922024-01-01T00:00:00.000Z"fixture-6d6100c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01932024-01-01T00:00:00.000Z"fixture-6d6100c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01942024-01-01T00:00:00.000Z"fixture-6d6100c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01952024-01-01T00:00:00.000Z"fixture-6d6100c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01962024-01-01T00:00:00.000Z"fixture-6d6100c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01972024-01-01T00:00:00.000Z"fixture-6d6100c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01982024-01-01T00:00:00.000Z"fixture-6d6100c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/01992024-01-01T00:00:00.000Z"fixture-6d6100c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02002024-01-01T00:00:00.000Z"fixture-6d6100c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02012024-01-01T00:00:00.000Z"fixture-6d6100c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02022024-01-01T00:00:00.000Z"fixture-6d6100ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02032024-01-01T00:00:00.000Z"fixture-6d6100cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02042024-01-01T00:00:00.000Z"fixture-6d6100cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02052024-01-01T00:00:00.000Z"fixture-6d6100cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02062024-01-01T00:00:00.000Z"fixture-6d6100ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02072024-01-01T00:00:00.000Z"fixture-6d6100cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02082024-01-01T00:00:00.000Z"fixture-6d6100d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02092024-01-01T00:00:00.000Z"fixture-6d6100d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02102024-01-01T00:00:00.000Z"fixture-6d6100d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02112024-01-01T00:00:00.000Z"fixture-6d6100d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02122024-01-01T00:00:00.000Z"fixture-6d6100d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02132024-01-01T00:00:00.000Z"fixture-6d6100d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02142024-01-01T00:00:00.000Z"fixture-6d6100d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02152024-01-01T00:00:00.000Z"fixture-6d6100d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02162024-01-01T00:00:00.000Z"fixture-6d6100d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02172024-01-01T00:00:00.000Z"fixture-6d6100d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02182024-01-01T00:00:00.000Z"fixture-6d6100da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02192024-01-01T00:00:00.000Z"fixture-6d6100db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02202024-01-01T00:00:00.000Z"fixture-6d6100dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02212024-01-01T00:00:00.000Z"fixture-6d6100dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02222024-01-01T00:00:00.000Z"fixture-6d6100de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02232024-01-01T00:00:00.000Z"fixture-6d6100df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02242024-01-01T00:00:00.000Z"fixture-6d6100e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02252024-01-01T00:00:00.000Z"fixture-6d6100e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02262024-01-01T00:00:00.000Z"fixture-6d6100e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02272024-01-01T00:00:00.000Z"fixture-6d6100e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02282024-01-01T00:00:00.000Z"fixture-6d6100e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02292024-01-01T00:00:00.000Z"fixture-6d6100e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02302024-01-01T00:00:00.000Z"fixture-6d6100e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02312024-01-01T00:00:00.000Z"fixture-6d6100e7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02322024-01-01T00:00:00.000Z"fixture-6d6100e8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02332024-01-01T00:00:00.000Z"fixture-6d6100e9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02342024-01-01T00:00:00.000Z"fixture-6d6100ea"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02352024-01-01T00:00:00.000Z"fixture-6d6100eb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02362024-01-01T00:00:00.000Z"fixture-6d6100ec"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02372024-01-01T00:00:00.000Z"fixture-6d6100ed"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02382024-01-01T00:00:00.000Z"fixture-6d6100ee"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02392024-01-01T00:00:00.000Z"fixture-6d6100ef"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02402024-01-01T00:00:00.000Z"fixture-6d6100f0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02412024-01-01T00:00:00.000Z"fixture-6d6100f1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02422024-01-01T00:00:00.000Z"fixture-6d6100f2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02432024-01-01T00:00:00.000Z"fixture-6d6100f3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02442024-01-01T00:00:00.000Z"fixture-6d6100f4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02452024-01-01T00:00:00.000Z"fixture-6d6100f5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02462024-01-01T00:00:00.000Z"fixture-6d6100f6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02472024-01-01T00:00:00.000Z"fixture-6d6100f7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02482024-01-01T00:00:00.000Z"fixture-6d6100f8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02492024-01-01T00:00:00.000Z"fixture-6d6100f9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02502024-01-01T00:00:00.000Z"fixture-6d6100fa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02512024-01-01T00:00:00.000Z"fixture-6d6100fb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02522024-01-01T00:00:00.000Z"fixture-6d6100fc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02532024-01-01T00:00:00.000Z"fixture-6d6100fd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02542024-01-01T00:00:00.000Z"fixture-6d6100fe"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02552024-01-01T00:00:00.000Z"fixture-6d6100ff"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02562024-01-01T00:00:00.000Z"fixture-6d610100"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02572024-01-01T00:00:00.000Z"fixture-6d610101"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02582024-01-01T00:00:00.000Z"fixture-6d610102"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02592024-01-01T00:00:00.000Z"fixture-6d610103"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02602024-01-01T00:00:00.000Z"fixture-6d610104"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02612024-01-01T00:00:00.000Z"fixture-6d610105"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02622024-01-01T00:00:00.000Z"fixture-6d610106"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02632024-01-01T00:00:00.000Z"fixture-6d610107"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02642024-01-01T00:00:00.000Z"fixture-6d610108"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02652024-01-01T00:00:00.000Z"fixture-6d610109"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02662024-01-01T00:00:00.000Z"fixture-6d61010a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02672024-01-01T00:00:00.000Z"fixture-6d61010b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02682024-01-01T00:00:00.000Z"fixture-6d61010c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02692024-01-01T00:00:00.000Z"fixture-6d61010d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02702024-01-01T00:00:00.000Z"fixture-6d61010e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02712024-01-01T00:00:00.000Z"fixture-6d61010f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02722024-01-01T00:00:00.000Z"fixture-6d610110"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02732024-01-01T00:00:00.000Z"fixture-6d610111"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02742024-01-01T00:00:00.000Z"fixture-6d610112"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02752024-01-01T00:00:00.000Z"fixture-6d610113"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02762024-01-01T00:00:00.000Z"fixture-6d610114"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02772024-01-01T00:00:00.000Z"fixture-6d610115"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02782024-01-01T00:00:00.000Z"fixture-6d610116"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02792024-01-01T00:00:00.000Z"fixture-6d610117"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02802024-01-01T00:00:00.000Z"fixture-6d610118"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02812024-01-01T00:00:00.000Z"fixture-6d610119"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02822024-01-01T00:00:00.000Z"fixture-6d61011a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02832024-01-01T00:00:00.000Z"fixture-6d61011b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02842024-01-01T00:00:00.000Z"fixture-6d61011c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02852024-01-01T00:00:00.000Z"fixture-6d61011d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02862024-01-01T00:00:00.000Z"fixture-6d61011e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02872024-01-01T00:00:00.000Z"fixture-6d61011f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02882024-01-01T00:00:00.000Z"fixture-6d610120"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02892024-01-01T00:00:00.000Z"fixture-6d610121"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02902024-01-01T00:00:00.000Z"fixture-6d610122"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02912024-01-01T00:00:00.000Z"fixture-6d610123"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02922024-01-01T00:00:00.000Z"fixture-6d610124"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02932024-01-01T00:00:00.000Z"fixture-6d610125"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02942024-01-01T00:00:00.000Z"fixture-6d610126"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02952024-01-01T00:00:00.000Z"fixture-6d610127"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02962024-01-01T00:00:00.000Z"fixture-6d610128"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02972024-01-01T00:00:00.000Z"fixture-6d610129"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02982024-01-01T00:00:00.000Z"fixture-6d61012a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/02992024-01-01T00:00:00.000Z"fixture-6d61012b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03002024-01-01T00:00:00.000Z"fixture-6d61012c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03012024-01-01T00:00:00.000Z"fixture-6d61012d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03022024-01-01T00:00:00.000Z"fixture-6d61012e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03032024-01-01T00:00:00.000Z"fixture-6d61012f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03042024-01-01T00:00:00.000Z"fixture-6d610130"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03052024-01-01T00:00:00.000Z"fixture-6d610131"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03062024-01-01T00:00:00.000Z"fixture-6d610132"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03072024-01-01T00:00:00.000Z"fixture-6d610133"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03082024-01-01T00:00:00.000Z"fixture-6d610134"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03092024-01-01T00:00:00.000Z"fixture-6d610135"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03102024-01-01T00:00:00.000Z"fixture-6d610136"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03112024-01-01T00:00:00.000Z"fixture-6d610137"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03122024-01-01T00:00:00.000Z"fixture-6d610138"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03132024-01-01T00:00:00.000Z"fixture-6d610139"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03142024-01-01T00:00:00.000Z"fixture-6d61013a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03152024-01-01T00:00:00.000Z"fixture-6d61013b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03162024-01-01T00:00:00.000Z"fixture-6d61013c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03172024-01-01T00:00:00.000Z"fixture-6d61013d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03182024-01-01T00:00:00.000Z"fixture-6d61013e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03192024-01-01T00:00:00.000Z"fixture-6d61013f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03202024-01-01T00:00:00.000Z"fixture-6d610140"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03212024-01-01T00:00:00.000Z"fixture-6d610141"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03222024-01-01T00:00:00.000Z"fixture-6d610142"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03232024-01-01T00:00:00.000Z"fixture-6d610143"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03242024-01-01T00:00:00.000Z"fixture-6d610144"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03252024-01-01T00:00:00.000Z"fixture-6d610145"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03262024-01-01T00:00:00.000Z"fixture-6d610146"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03272024-01-01T00:00:00.000Z"fixture-6d610147"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03282024-01-01T00:00:00.000Z"fixture-6d610148"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03292024-01-01T00:00:00.000Z"fixture-6d610149"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03302024-01-01T00:00:00.000Z"fixture-6d61014a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03312024-01-01T00:00:00.000Z"fixture-6d61014b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03322024-01-01T00:00:00.000Z"fixture-6d61014c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03332024-01-01T00:00:00.000Z"fixture-6d61014d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03342024-01-01T00:00:00.000Z"fixture-6d61014e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03352024-01-01T00:00:00.000Z"fixture-6d61014f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03362024-01-01T00:00:00.000Z"fixture-6d610150"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03372024-01-01T00:00:00.000Z"fixture-6d610151"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03382024-01-01T00:00:00.000Z"fixture-6d610152"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03392024-01-01T00:00:00.000Z"fixture-6d610153"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03402024-01-01T00:00:00.000Z"fixture-6d610154"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03412024-01-01T00:00:00.000Z"fixture-6d610155"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03422024-01-01T00:00:00.000Z"fixture-6d610156"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03432024-01-01T00:00:00.000Z"fixture-6d610157"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03442024-01-01T00:00:00.000Z"fixture-6d610158"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03452024-01-01T00:00:00.000Z"fixture-6d610159"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03462024-01-01T00:00:00.000Z"fixture-6d61015a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03472024-01-01T00:00:00.000Z"fixture-6d61015b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03482024-01-01T00:00:00.000Z"fixture-6d61015c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03492024-01-01T00:00:00.000Z"fixture-6d61015d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03502024-01-01T00:00:00.000Z"fixture-6d61015e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03512024-01-01T00:00:00.000Z"fixture-6d61015f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03522024-01-01T00:00:00.000Z"fixture-6d610160"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03532024-01-01T00:00:00.000Z"fixture-6d610161"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03542024-01-01T00:00:00.000Z"fixture-6d610162"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03552024-01-01T00:00:00.000Z"fixture-6d610163"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03562024-01-01T00:00:00.000Z"fixture-6d610164"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03572024-01-01T00:00:00.000Z"fixture-6d610165"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03582024-01-01T00:00:00.000Z"fixture-6d610166"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03592024-01-01T00:00:00.000Z"fixture-6d610167"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03602024-01-01T00:00:00.000Z"fixture-6d610168"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03612024-01-01T00:00:00.000Z"fixture-6d610169"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03622024-01-01T00:00:00.000Z"fixture-6d61016a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03632024-01-01T00:00:00.000Z"fixture-6d61016b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03642024-01-01T00:00:00.000Z"fixture-6d61016c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03652024-01-01T00:00:00.000Z"fixture-6d61016d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03662024-01-01T00:00:00.000Z"fixture-6d61016e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03672024-01-01T00:00:00.000Z"fixture-6d61016f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03682024-01-01T00:00:00.000Z"fixture-6d610170"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03692024-01-01T00:00:00.000Z"fixture-6d610171"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03702024-01-01T00:00:00.000Z"fixture-6d610172"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03712024-01-01T00:00:00.000Z"fixture-6d610173"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03722024-01-01T00:00:00.000Z"fixture-6d610174"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03732024-01-01T00:00:00.000Z"fixture-6d610175"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03742024-01-01T00:00:00.000Z"fixture-6d610176"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03752024-01-01T00:00:00.000Z"fixture-6d610177"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03762024-01-01T00:00:00.000Z"fixture-6d610178"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03772024-01-01T00:00:00.000Z"fixture-6d610179"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03782024-01-01T00:00:00.000Z"fixture-6d61017a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03792024-01-01T00:00:00.000Z"fixture-6d61017b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03802024-01-01T00:00:00.000Z"fixture-6d61017c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03812024-01-01T00:00:00.000Z"fixture-6d61017d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03822024-01-01T00:00:00.000Z"fixture-6d61017e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03832024-01-01T00:00:00.000Z"fixture-6d61017f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03842024-01-01T00:00:00.000Z"fixture-6d610180"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03852024-01-01T00:00:00.000Z"fixture-6d610181"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03862024-01-01T00:00:00.000Z"fixture-6d610182"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03872024-01-01T00:00:00.000Z"fixture-6d610183"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03882024-01-01T00:00:00.000Z"fixture-6d610184"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03892024-01-01T00:00:00.000Z"fixture-6d610185"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03902024-01-01T00:00:00.000Z"fixture-6d610186"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03912024-01-01T00:00:00.000Z"fixture-6d610187"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03922024-01-01T00:00:00.000Z"fixture-6d610188"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03932024-01-01T00:00:00.000Z"fixture-6d610189"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03942024-01-01T00:00:00.000Z"fixture-6d61018a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03952024-01-01T00:00:00.000Z"fixture-6d61018b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03962024-01-01T00:00:00.000Z"fixture-6d61018c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03972024-01-01T00:00:00.000Z"fixture-6d61018d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03982024-01-01T00:00:00.000Z"fixture-6d61018e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/03992024-01-01T00:00:00.000Z"fixture-6d61018f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04002024-01-01T00:00:00.000Z"fixture-6d610190"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04012024-01-01T00:00:00.000Z"fixture-6d610191"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04022024-01-01T00:00:00.000Z"fixture-6d610192"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04032024-01-01T00:00:00.000Z"fixture-6d610193"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04042024-01-01T00:00:00.000Z"fixture-6d610194"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04052024-01-01T00:00:00.000Z"fixture-6d610195"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04062024-01-01T00:00:00.000Z"fixture-6d610196"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04072024-01-01T00:00:00.000Z"fixture-6d610197"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04082024-01-01T00:00:00.000Z"fixture-6d610198"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04092024-01-01T00:00:00.000Z"fixture-6d610199"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04102024-01-01T00:00:00.000Z"fixture-6d61019a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04112024-01-01T00:00:00.000Z"fixture-6d61019b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04122024-01-01T00:00:00.000Z"fixture-6d61019c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04132024-01-01T00:00:00.000Z"fixture-6d61019d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04142024-01-01T00:00:00.000Z"fixture-6d61019e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04152024-01-01T00:00:00.000Z"fixture-6d61019f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04162024-01-01T00:00:00.000Z"fixture-6d6101a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04172024-01-01T00:00:00.000Z"fixture-6d6101a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04182024-01-01T00:00:00.000Z"fixture-6d6101a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04192024-01-01T00:00:00.000Z"fixture-6d6101a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04202024-01-01T00:00:00.000Z"fixture-6d6101a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04212024-01-01T00:00:00.000Z"fixture-6d6101a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04222024-01-01T00:00:00.000Z"fixture-6d6101a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04232024-01-01T00:00:00.000Z"fixture-6d6101a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04242024-01-01T00:00:00.000Z"fixture-6d6101a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04252024-01-01T00:00:00.000Z"fixture-6d6101a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04262024-01-01T00:00:00.000Z"fixture-6d6101aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04272024-01-01T00:00:00.000Z"fixture-6d6101ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04282024-01-01T00:00:00.000Z"fixture-6d6101ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04292024-01-01T00:00:00.000Z"fixture-6d6101ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04302024-01-01T00:00:00.000Z"fixture-6d6101ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04312024-01-01T00:00:00.000Z"fixture-6d6101af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04322024-01-01T00:00:00.000Z"fixture-6d6101b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04332024-01-01T00:00:00.000Z"fixture-6d6101b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04342024-01-01T00:00:00.000Z"fixture-6d6101b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04352024-01-01T00:00:00.000Z"fixture-6d6101b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04362024-01-01T00:00:00.000Z"fixture-6d6101b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04372024-01-01T00:00:00.000Z"fixture-6d6101b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04382024-01-01T00:00:00.000Z"fixture-6d6101b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04392024-01-01T00:00:00.000Z"fixture-6d6101b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04402024-01-01T00:00:00.000Z"fixture-6d6101b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04412024-01-01T00:00:00.000Z"fixture-6d6101b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04422024-01-01T00:00:00.000Z"fixture-6d6101ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04432024-01-01T00:00:00.000Z"fixture-6d6101bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04442024-01-01T00:00:00.000Z"fixture-6d6101bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04452024-01-01T00:00:00.000Z"fixture-6d6101bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04462024-01-01T00:00:00.000Z"fixture-6d6101be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04472024-01-01T00:00:00.000Z"fixture-6d6101bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04482024-01-01T00:00:00.000Z"fixture-6d6101c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04492024-01-01T00:00:00.000Z"fixture-6d6101c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04502024-01-01T00:00:00.000Z"fixture-6d6101c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04512024-01-01T00:00:00.000Z"fixture-6d6101c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04522024-01-01T00:00:00.000Z"fixture-6d6101c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04532024-01-01T00:00:00.000Z"fixture-6d6101c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04542024-01-01T00:00:00.000Z"fixture-6d6101c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04552024-01-01T00:00:00.000Z"fixture-6d6101c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04562024-01-01T00:00:00.000Z"fixture-6d6101c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04572024-01-01T00:00:00.000Z"fixture-6d6101c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04582024-01-01T00:00:00.000Z"fixture-6d6101ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04592024-01-01T00:00:00.000Z"fixture-6d6101cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04602024-01-01T00:00:00.000Z"fixture-6d6101cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04612024-01-01T00:00:00.000Z"fixture-6d6101cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04622024-01-01T00:00:00.000Z"fixture-6d6101ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04632024-01-01T00:00:00.000Z"fixture-6d6101cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04642024-01-01T00:00:00.000Z"fixture-6d6101d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04652024-01-01T00:00:00.000Z"fixture-6d6101d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04662024-01-01T00:00:00.000Z"fixture-6d6101d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04672024-01-01T00:00:00.000Z"fixture-6d6101d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04682024-01-01T00:00:00.000Z"fixture-6d6101d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04692024-01-01T00:00:00.000Z"fixture-6d6101d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04702024-01-01T00:00:00.000Z"fixture-6d6101d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04712024-01-01T00:00:00.000Z"fixture-6d6101d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04722024-01-01T00:00:00.000Z"fixture-6d6101d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04732024-01-01T00:00:00.000Z"fixture-6d6101d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04742024-01-01T00:00:00.000Z"fixture-6d6101da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04752024-01-01T00:00:00.000Z"fixture-6d6101db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04762024-01-01T00:00:00.000Z"fixture-6d6101dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04772024-01-01T00:00:00.000Z"fixture-6d6101dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04782024-01-01T00:00:00.000Z"fixture-6d6101de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04792024-01-01T00:00:00.000Z"fixture-6d6101df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04802024-01-01T00:00:00.000Z"fixture-6d6101e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04812024-01-01T00:00:00.000Z"fixture-6d6101e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04822024-01-01T00:00:00.000Z"fixture-6d6101e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04832024-01-01T00:00:00.000Z"fixture-6d6101e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04842024-01-01T00:00:00.000Z"fixture-6d6101e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04852024-01-01T00:00:00.000Z"fixture-6d6101e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04862024-01-01T00:00:00.000Z"fixture-6d6101e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04872024-01-01T00:00:00.000Z"fixture-6d6101e7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04882024-01-01T00:00:00.000Z"fixture-6d6101e8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04892024-01-01T00:00:00.000Z"fixture-6d6101e9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04902024-01-01T00:00:00.000Z"fixture-6d6101ea"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04912024-01-01T00:00:00.000Z"fixture-6d6101eb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04922024-01-01T00:00:00.000Z"fixture-6d6101ec"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04932024-01-01T00:00:00.000Z"fixture-6d6101ed"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04942024-01-01T00:00:00.000Z"fixture-6d6101ee"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04952024-01-01T00:00:00.000Z"fixture-6d6101ef"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04962024-01-01T00:00:00.000Z"fixture-6d6101f0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04972024-01-01T00:00:00.000Z"fixture-6d6101f1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04982024-01-01T00:00:00.000Z"fixture-6d6101f2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/04992024-01-01T00:00:00.000Z"fixture-6d6101f3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05002024-01-01T00:00:00.000Z"fixture-6d6101f4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05012024-01-01T00:00:00.000Z"fixture-6d6101f5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05022024-01-01T00:00:00.000Z"fixture-6d6101f6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05032024-01-01T00:00:00.000Z"fixture-6d6101f7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05042024-01-01T00:00:00.000Z"fixture-6d6101f8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05052024-01-01T00:00:00.000Z"fixture-6d6101f9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05062024-01-01T00:00:00.000Z"fixture-6d6101fa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05072024-01-01T00:00:00.000Z"fixture-6d6101fb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05082024-01-01T00:00:00.000Z"fixture-6d6101fc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05092024-01-01T00:00:00.000Z"fixture-6d6101fd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05102024-01-01T00:00:00.000Z"fixture-6d6101fe"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05112024-01-01T00:00:00.000Z"fixture-6d6101ff"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05122024-01-01T00:00:00.000Z"fixture-6d610200"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05132024-01-01T00:00:00.000Z"fixture-6d610201"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05142024-01-01T00:00:00.000Z"fixture-6d610202"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05152024-01-01T00:00:00.000Z"fixture-6d610203"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05162024-01-01T00:00:00.000Z"fixture-6d610204"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05172024-01-01T00:00:00.000Z"fixture-6d610205"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05182024-01-01T00:00:00.000Z"fixture-6d610206"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05192024-01-01T00:00:00.000Z"fixture-6d610207"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05202024-01-01T00:00:00.000Z"fixture-6d610208"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05212024-01-01T00:00:00.000Z"fixture-6d610209"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05222024-01-01T00:00:00.000Z"fixture-6d61020a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05232024-01-01T00:00:00.000Z"fixture-6d61020b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05242024-01-01T00:00:00.000Z"fixture-6d61020c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05252024-01-01T00:00:00.000Z"fixture-6d61020d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05262024-01-01T00:00:00.000Z"fixture-6d61020e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05272024-01-01T00:00:00.000Z"fixture-6d61020f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05282024-01-01T00:00:00.000Z"fixture-6d610210"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05292024-01-01T00:00:00.000Z"fixture-6d610211"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05302024-01-01T00:00:00.000Z"fixture-6d610212"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05312024-01-01T00:00:00.000Z"fixture-6d610213"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05322024-01-01T00:00:00.000Z"fixture-6d610214"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05332024-01-01T00:00:00.000Z"fixture-6d610215"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05342024-01-01T00:00:00.000Z"fixture-6d610216"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05352024-01-01T00:00:00.000Z"fixture-6d610217"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05362024-01-01T00:00:00.000Z"fixture-6d610218"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05372024-01-01T00:00:00.000Z"fixture-6d610219"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05382024-01-01T00:00:00.000Z"fixture-6d61021a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05392024-01-01T00:00:00.000Z"fixture-6d61021b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05402024-01-01T00:00:00.000Z"fixture-6d61021c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05412024-01-01T00:00:00.000Z"fixture-6d61021d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05422024-01-01T00:00:00.000Z"fixture-6d61021e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05432024-01-01T00:00:00.000Z"fixture-6d61021f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05442024-01-01T00:00:00.000Z"fixture-6d610220"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05452024-01-01T00:00:00.000Z"fixture-6d610221"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05462024-01-01T00:00:00.000Z"fixture-6d610222"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05472024-01-01T00:00:00.000Z"fixture-6d610223"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05482024-01-01T00:00:00.000Z"fixture-6d610224"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05492024-01-01T00:00:00.000Z"fixture-6d610225"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05502024-01-01T00:00:00.000Z"fixture-6d610226"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05512024-01-01T00:00:00.000Z"fixture-6d610227"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05522024-01-01T00:00:00.000Z"fixture-6d610228"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05532024-01-01T00:00:00.000Z"fixture-6d610229"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05542024-01-01T00:00:00.000Z"fixture-6d61022a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05552024-01-01T00:00:00.000Z"fixture-6d61022b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05562024-01-01T00:00:00.000Z"fixture-6d61022c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05572024-01-01T00:00:00.000Z"fixture-6d61022d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05582024-01-01T00:00:00.000Z"fixture-6d61022e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05592024-01-01T00:00:00.000Z"fixture-6d61022f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05602024-01-01T00:00:00.000Z"fixture-6d610230"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05612024-01-01T00:00:00.000Z"fixture-6d610231"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05622024-01-01T00:00:00.000Z"fixture-6d610232"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05632024-01-01T00:00:00.000Z"fixture-6d610233"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05642024-01-01T00:00:00.000Z"fixture-6d610234"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05652024-01-01T00:00:00.000Z"fixture-6d610235"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05662024-01-01T00:00:00.000Z"fixture-6d610236"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05672024-01-01T00:00:00.000Z"fixture-6d610237"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05682024-01-01T00:00:00.000Z"fixture-6d610238"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05692024-01-01T00:00:00.000Z"fixture-6d610239"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05702024-01-01T00:00:00.000Z"fixture-6d61023a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05712024-01-01T00:00:00.000Z"fixture-6d61023b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05722024-01-01T00:00:00.000Z"fixture-6d61023c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05732024-01-01T00:00:00.000Z"fixture-6d61023d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05742024-01-01T00:00:00.000Z"fixture-6d61023e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05752024-01-01T00:00:00.000Z"fixture-6d61023f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05762024-01-01T00:00:00.000Z"fixture-6d610240"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05772024-01-01T00:00:00.000Z"fixture-6d610241"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05782024-01-01T00:00:00.000Z"fixture-6d610242"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05792024-01-01T00:00:00.000Z"fixture-6d610243"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05802024-01-01T00:00:00.000Z"fixture-6d610244"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05812024-01-01T00:00:00.000Z"fixture-6d610245"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05822024-01-01T00:00:00.000Z"fixture-6d610246"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05832024-01-01T00:00:00.000Z"fixture-6d610247"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05842024-01-01T00:00:00.000Z"fixture-6d610248"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05852024-01-01T00:00:00.000Z"fixture-6d610249"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05862024-01-01T00:00:00.000Z"fixture-6d61024a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05872024-01-01T00:00:00.000Z"fixture-6d61024b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05882024-01-01T00:00:00.000Z"fixture-6d61024c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05892024-01-01T00:00:00.000Z"fixture-6d61024d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05902024-01-01T00:00:00.000Z"fixture-6d61024e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05912024-01-01T00:00:00.000Z"fixture-6d61024f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05922024-01-01T00:00:00.000Z"fixture-6d610250"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05932024-01-01T00:00:00.000Z"fixture-6d610251"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05942024-01-01T00:00:00.000Z"fixture-6d610252"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05952024-01-01T00:00:00.000Z"fixture-6d610253"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05962024-01-01T00:00:00.000Z"fixture-6d610254"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05972024-01-01T00:00:00.000Z"fixture-6d610255"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05982024-01-01T00:00:00.000Z"fixture-6d610256"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/05992024-01-01T00:00:00.000Z"fixture-6d610257"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06002024-01-01T00:00:00.000Z"fixture-6d610258"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06012024-01-01T00:00:00.000Z"fixture-6d610259"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06022024-01-01T00:00:00.000Z"fixture-6d61025a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06032024-01-01T00:00:00.000Z"fixture-6d61025b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06042024-01-01T00:00:00.000Z"fixture-6d61025c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06052024-01-01T00:00:00.000Z"fixture-6d61025d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06062024-01-01T00:00:00.000Z"fixture-6d61025e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06072024-01-01T00:00:00.000Z"fixture-6d61025f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06082024-01-01T00:00:00.000Z"fixture-6d610260"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06092024-01-01T00:00:00.000Z"fixture-6d610261"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06102024-01-01T00:00:00.000Z"fixture-6d610262"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06112024-01-01T00:00:00.000Z"fixture-6d610263"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06122024-01-01T00:00:00.000Z"fixture-6d610264"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06132024-01-01T00:00:00.000Z"fixture-6d610265"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06142024-01-01T00:00:00.000Z"fixture-6d610266"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06152024-01-01T00:00:00.000Z"fixture-6d610267"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06162024-01-01T00:00:00.000Z"fixture-6d610268"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06172024-01-01T00:00:00.000Z"fixture-6d610269"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06182024-01-01T00:00:00.000Z"fixture-6d61026a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06192024-01-01T00:00:00.000Z"fixture-6d61026b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06202024-01-01T00:00:00.000Z"fixture-6d61026c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06212024-01-01T00:00:00.000Z"fixture-6d61026d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06222024-01-01T00:00:00.000Z"fixture-6d61026e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06232024-01-01T00:00:00.000Z"fixture-6d61026f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06242024-01-01T00:00:00.000Z"fixture-6d610270"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06252024-01-01T00:00:00.000Z"fixture-6d610271"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06262024-01-01T00:00:00.000Z"fixture-6d610272"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06272024-01-01T00:00:00.000Z"fixture-6d610273"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06282024-01-01T00:00:00.000Z"fixture-6d610274"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06292024-01-01T00:00:00.000Z"fixture-6d610275"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06302024-01-01T00:00:00.000Z"fixture-6d610276"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06312024-01-01T00:00:00.000Z"fixture-6d610277"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06322024-01-01T00:00:00.000Z"fixture-6d610278"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06332024-01-01T00:00:00.000Z"fixture-6d610279"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06342024-01-01T00:00:00.000Z"fixture-6d61027a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06352024-01-01T00:00:00.000Z"fixture-6d61027b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06362024-01-01T00:00:00.000Z"fixture-6d61027c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06372024-01-01T00:00:00.000Z"fixture-6d61027d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06382024-01-01T00:00:00.000Z"fixture-6d61027e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06392024-01-01T00:00:00.000Z"fixture-6d61027f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06402024-01-01T00:00:00.000Z"fixture-6d610280"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06412024-01-01T00:00:00.000Z"fixture-6d610281"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06422024-01-01T00:00:00.000Z"fixture-6d610282"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06432024-01-01T00:00:00.000Z"fixture-6d610283"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06442024-01-01T00:00:00.000Z"fixture-6d610284"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06452024-01-01T00:00:00.000Z"fixture-6d610285"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06462024-01-01T00:00:00.000Z"fixture-6d610286"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06472024-01-01T00:00:00.000Z"fixture-6d610287"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06482024-01-01T00:00:00.000Z"fixture-6d610288"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06492024-01-01T00:00:00.000Z"fixture-6d610289"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06502024-01-01T00:00:00.000Z"fixture-6d61028a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06512024-01-01T00:00:00.000Z"fixture-6d61028b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06522024-01-01T00:00:00.000Z"fixture-6d61028c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06532024-01-01T00:00:00.000Z"fixture-6d61028d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06542024-01-01T00:00:00.000Z"fixture-6d61028e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06552024-01-01T00:00:00.000Z"fixture-6d61028f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06562024-01-01T00:00:00.000Z"fixture-6d610290"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06572024-01-01T00:00:00.000Z"fixture-6d610291"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06582024-01-01T00:00:00.000Z"fixture-6d610292"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06592024-01-01T00:00:00.000Z"fixture-6d610293"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06602024-01-01T00:00:00.000Z"fixture-6d610294"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06612024-01-01T00:00:00.000Z"fixture-6d610295"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06622024-01-01T00:00:00.000Z"fixture-6d610296"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06632024-01-01T00:00:00.000Z"fixture-6d610297"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06642024-01-01T00:00:00.000Z"fixture-6d610298"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06652024-01-01T00:00:00.000Z"fixture-6d610299"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06662024-01-01T00:00:00.000Z"fixture-6d61029a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06672024-01-01T00:00:00.000Z"fixture-6d61029b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06682024-01-01T00:00:00.000Z"fixture-6d61029c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06692024-01-01T00:00:00.000Z"fixture-6d61029d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06702024-01-01T00:00:00.000Z"fixture-6d61029e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06712024-01-01T00:00:00.000Z"fixture-6d61029f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06722024-01-01T00:00:00.000Z"fixture-6d6102a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06732024-01-01T00:00:00.000Z"fixture-6d6102a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06742024-01-01T00:00:00.000Z"fixture-6d6102a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06752024-01-01T00:00:00.000Z"fixture-6d6102a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06762024-01-01T00:00:00.000Z"fixture-6d6102a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06772024-01-01T00:00:00.000Z"fixture-6d6102a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06782024-01-01T00:00:00.000Z"fixture-6d6102a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06792024-01-01T00:00:00.000Z"fixture-6d6102a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06802024-01-01T00:00:00.000Z"fixture-6d6102a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06812024-01-01T00:00:00.000Z"fixture-6d6102a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06822024-01-01T00:00:00.000Z"fixture-6d6102aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06832024-01-01T00:00:00.000Z"fixture-6d6102ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06842024-01-01T00:00:00.000Z"fixture-6d6102ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06852024-01-01T00:00:00.000Z"fixture-6d6102ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06862024-01-01T00:00:00.000Z"fixture-6d6102ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06872024-01-01T00:00:00.000Z"fixture-6d6102af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06882024-01-01T00:00:00.000Z"fixture-6d6102b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06892024-01-01T00:00:00.000Z"fixture-6d6102b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06902024-01-01T00:00:00.000Z"fixture-6d6102b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06912024-01-01T00:00:00.000Z"fixture-6d6102b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06922024-01-01T00:00:00.000Z"fixture-6d6102b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06932024-01-01T00:00:00.000Z"fixture-6d6102b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06942024-01-01T00:00:00.000Z"fixture-6d6102b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06952024-01-01T00:00:00.000Z"fixture-6d6102b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06962024-01-01T00:00:00.000Z"fixture-6d6102b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06972024-01-01T00:00:00.000Z"fixture-6d6102b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06982024-01-01T00:00:00.000Z"fixture-6d6102ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/06992024-01-01T00:00:00.000Z"fixture-6d6102bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07002024-01-01T00:00:00.000Z"fixture-6d6102bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07012024-01-01T00:00:00.000Z"fixture-6d6102bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07022024-01-01T00:00:00.000Z"fixture-6d6102be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07032024-01-01T00:00:00.000Z"fixture-6d6102bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07042024-01-01T00:00:00.000Z"fixture-6d6102c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07052024-01-01T00:00:00.000Z"fixture-6d6102c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07062024-01-01T00:00:00.000Z"fixture-6d6102c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07072024-01-01T00:00:00.000Z"fixture-6d6102c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07082024-01-01T00:00:00.000Z"fixture-6d6102c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07092024-01-01T00:00:00.000Z"fixture-6d6102c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07102024-01-01T00:00:00.000Z"fixture-6d6102c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07112024-01-01T00:00:00.000Z"fixture-6d6102c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07122024-01-01T00:00:00.000Z"fixture-6d6102c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07132024-01-01T00:00:00.000Z"fixture-6d6102c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07142024-01-01T00:00:00.000Z"fixture-6d6102ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07152024-01-01T00:00:00.000Z"fixture-6d6102cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07162024-01-01T00:00:00.000Z"fixture-6d6102cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07172024-01-01T00:00:00.000Z"fixture-6d6102cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07182024-01-01T00:00:00.000Z"fixture-6d6102ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07192024-01-01T00:00:00.000Z"fixture-6d6102cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07202024-01-01T00:00:00.000Z"fixture-6d6102d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07212024-01-01T00:00:00.000Z"fixture-6d6102d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07222024-01-01T00:00:00.000Z"fixture-6d6102d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07232024-01-01T00:00:00.000Z"fixture-6d6102d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07242024-01-01T00:00:00.000Z"fixture-6d6102d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07252024-01-01T00:00:00.000Z"fixture-6d6102d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07262024-01-01T00:00:00.000Z"fixture-6d6102d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07272024-01-01T00:00:00.000Z"fixture-6d6102d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07282024-01-01T00:00:00.000Z"fixture-6d6102d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07292024-01-01T00:00:00.000Z"fixture-6d6102d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07302024-01-01T00:00:00.000Z"fixture-6d6102da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07312024-01-01T00:00:00.000Z"fixture-6d6102db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07322024-01-01T00:00:00.000Z"fixture-6d6102dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07332024-01-01T00:00:00.000Z"fixture-6d6102dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07342024-01-01T00:00:00.000Z"fixture-6d6102de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07352024-01-01T00:00:00.000Z"fixture-6d6102df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07362024-01-01T00:00:00.000Z"fixture-6d6102e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07372024-01-01T00:00:00.000Z"fixture-6d6102e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07382024-01-01T00:00:00.000Z"fixture-6d6102e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07392024-01-01T00:00:00.000Z"fixture-6d6102e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07402024-01-01T00:00:00.000Z"fixture-6d6102e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07412024-01-01T00:00:00.000Z"fixture-6d6102e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07422024-01-01T00:00:00.000Z"fixture-6d6102e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07432024-01-01T00:00:00.000Z"fixture-6d6102e7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07442024-01-01T00:00:00.000Z"fixture-6d6102e8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07452024-01-01T00:00:00.000Z"fixture-6d6102e9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07462024-01-01T00:00:00.000Z"fixture-6d6102ea"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07472024-01-01T00:00:00.000Z"fixture-6d6102eb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07482024-01-01T00:00:00.000Z"fixture-6d6102ec"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07492024-01-01T00:00:00.000Z"fixture-6d6102ed"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07502024-01-01T00:00:00.000Z"fixture-6d6102ee"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07512024-01-01T00:00:00.000Z"fixture-6d6102ef"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07522024-01-01T00:00:00.000Z"fixture-6d6102f0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07532024-01-01T00:00:00.000Z"fixture-6d6102f1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07542024-01-01T00:00:00.000Z"fixture-6d6102f2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07552024-01-01T00:00:00.000Z"fixture-6d6102f3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07562024-01-01T00:00:00.000Z"fixture-6d6102f4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07572024-01-01T00:00:00.000Z"fixture-6d6102f5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07582024-01-01T00:00:00.000Z"fixture-6d6102f6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07592024-01-01T00:00:00.000Z"fixture-6d6102f7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07602024-01-01T00:00:00.000Z"fixture-6d6102f8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07612024-01-01T00:00:00.000Z"fixture-6d6102f9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07622024-01-01T00:00:00.000Z"fixture-6d6102fa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07632024-01-01T00:00:00.000Z"fixture-6d6102fb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07642024-01-01T00:00:00.000Z"fixture-6d6102fc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07652024-01-01T00:00:00.000Z"fixture-6d6102fd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07662024-01-01T00:00:00.000Z"fixture-6d6102fe"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07672024-01-01T00:00:00.000Z"fixture-6d6102ff"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07682024-01-01T00:00:00.000Z"fixture-6d610300"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07692024-01-01T00:00:00.000Z"fixture-6d610301"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07702024-01-01T00:00:00.000Z"fixture-6d610302"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07712024-01-01T00:00:00.000Z"fixture-6d610303"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07722024-01-01T00:00:00.000Z"fixture-6d610304"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07732024-01-01T00:00:00.000Z"fixture-6d610305"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07742024-01-01T00:00:00.000Z"fixture-6d610306"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07752024-01-01T00:00:00.000Z"fixture-6d610307"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07762024-01-01T00:00:00.000Z"fixture-6d610308"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07772024-01-01T00:00:00.000Z"fixture-6d610309"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07782024-01-01T00:00:00.000Z"fixture-6d61030a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07792024-01-01T00:00:00.000Z"fixture-6d61030b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07802024-01-01T00:00:00.000Z"fixture-6d61030c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07812024-01-01T00:00:00.000Z"fixture-6d61030d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07822024-01-01T00:00:00.000Z"fixture-6d61030e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07832024-01-01T00:00:00.000Z"fixture-6d61030f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07842024-01-01T00:00:00.000Z"fixture-6d610310"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07852024-01-01T00:00:00.000Z"fixture-6d610311"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07862024-01-01T00:00:00.000Z"fixture-6d610312"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07872024-01-01T00:00:00.000Z"fixture-6d610313"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07882024-01-01T00:00:00.000Z"fixture-6d610314"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07892024-01-01T00:00:00.000Z"fixture-6d610315"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07902024-01-01T00:00:00.000Z"fixture-6d610316"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07912024-01-01T00:00:00.000Z"fixture-6d610317"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07922024-01-01T00:00:00.000Z"fixture-6d610318"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07932024-01-01T00:00:00.000Z"fixture-6d610319"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07942024-01-01T00:00:00.000Z"fixture-6d61031a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07952024-01-01T00:00:00.000Z"fixture-6d61031b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07962024-01-01T00:00:00.000Z"fixture-6d61031c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07972024-01-01T00:00:00.000Z"fixture-6d61031d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07982024-01-01T00:00:00.000Z"fixture-6d61031e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/07992024-01-01T00:00:00.000Z"fixture-6d61031f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08002024-01-01T00:00:00.000Z"fixture-6d610320"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08012024-01-01T00:00:00.000Z"fixture-6d610321"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08022024-01-01T00:00:00.000Z"fixture-6d610322"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08032024-01-01T00:00:00.000Z"fixture-6d610323"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08042024-01-01T00:00:00.000Z"fixture-6d610324"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08052024-01-01T00:00:00.000Z"fixture-6d610325"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08062024-01-01T00:00:00.000Z"fixture-6d610326"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08072024-01-01T00:00:00.000Z"fixture-6d610327"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08082024-01-01T00:00:00.000Z"fixture-6d610328"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08092024-01-01T00:00:00.000Z"fixture-6d610329"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08102024-01-01T00:00:00.000Z"fixture-6d61032a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08112024-01-01T00:00:00.000Z"fixture-6d61032b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08122024-01-01T00:00:00.000Z"fixture-6d61032c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08132024-01-01T00:00:00.000Z"fixture-6d61032d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08142024-01-01T00:00:00.000Z"fixture-6d61032e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08152024-01-01T00:00:00.000Z"fixture-6d61032f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08162024-01-01T00:00:00.000Z"fixture-6d610330"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08172024-01-01T00:00:00.000Z"fixture-6d610331"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08182024-01-01T00:00:00.000Z"fixture-6d610332"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08192024-01-01T00:00:00.000Z"fixture-6d610333"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08202024-01-01T00:00:00.000Z"fixture-6d610334"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08212024-01-01T00:00:00.000Z"fixture-6d610335"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08222024-01-01T00:00:00.000Z"fixture-6d610336"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08232024-01-01T00:00:00.000Z"fixture-6d610337"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08242024-01-01T00:00:00.000Z"fixture-6d610338"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08252024-01-01T00:00:00.000Z"fixture-6d610339"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08262024-01-01T00:00:00.000Z"fixture-6d61033a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08272024-01-01T00:00:00.000Z"fixture-6d61033b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08282024-01-01T00:00:00.000Z"fixture-6d61033c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08292024-01-01T00:00:00.000Z"fixture-6d61033d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08302024-01-01T00:00:00.000Z"fixture-6d61033e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08312024-01-01T00:00:00.000Z"fixture-6d61033f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08322024-01-01T00:00:00.000Z"fixture-6d610340"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08332024-01-01T00:00:00.000Z"fixture-6d610341"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08342024-01-01T00:00:00.000Z"fixture-6d610342"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08352024-01-01T00:00:00.000Z"fixture-6d610343"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08362024-01-01T00:00:00.000Z"fixture-6d610344"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08372024-01-01T00:00:00.000Z"fixture-6d610345"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08382024-01-01T00:00:00.000Z"fixture-6d610346"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08392024-01-01T00:00:00.000Z"fixture-6d610347"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08402024-01-01T00:00:00.000Z"fixture-6d610348"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08412024-01-01T00:00:00.000Z"fixture-6d610349"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08422024-01-01T00:00:00.000Z"fixture-6d61034a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08432024-01-01T00:00:00.000Z"fixture-6d61034b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08442024-01-01T00:00:00.000Z"fixture-6d61034c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08452024-01-01T00:00:00.000Z"fixture-6d61034d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08462024-01-01T00:00:00.000Z"fixture-6d61034e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08472024-01-01T00:00:00.000Z"fixture-6d61034f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08482024-01-01T00:00:00.000Z"fixture-6d610350"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08492024-01-01T00:00:00.000Z"fixture-6d610351"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08502024-01-01T00:00:00.000Z"fixture-6d610352"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08512024-01-01T00:00:00.000Z"fixture-6d610353"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08522024-01-01T00:00:00.000Z"fixture-6d610354"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08532024-01-01T00:00:00.000Z"fixture-6d610355"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08542024-01-01T00:00:00.000Z"fixture-6d610356"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08552024-01-01T00:00:00.000Z"fixture-6d610357"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08562024-01-01T00:00:00.000Z"fixture-6d610358"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08572024-01-01T00:00:00.000Z"fixture-6d610359"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08582024-01-01T00:00:00.000Z"fixture-6d61035a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08592024-01-01T00:00:00.000Z"fixture-6d61035b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08602024-01-01T00:00:00.000Z"fixture-6d61035c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08612024-01-01T00:00:00.000Z"fixture-6d61035d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08622024-01-01T00:00:00.000Z"fixture-6d61035e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08632024-01-01T00:00:00.000Z"fixture-6d61035f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08642024-01-01T00:00:00.000Z"fixture-6d610360"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08652024-01-01T00:00:00.000Z"fixture-6d610361"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08662024-01-01T00:00:00.000Z"fixture-6d610362"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08672024-01-01T00:00:00.000Z"fixture-6d610363"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08682024-01-01T00:00:00.000Z"fixture-6d610364"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08692024-01-01T00:00:00.000Z"fixture-6d610365"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08702024-01-01T00:00:00.000Z"fixture-6d610366"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08712024-01-01T00:00:00.000Z"fixture-6d610367"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08722024-01-01T00:00:00.000Z"fixture-6d610368"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08732024-01-01T00:00:00.000Z"fixture-6d610369"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08742024-01-01T00:00:00.000Z"fixture-6d61036a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08752024-01-01T00:00:00.000Z"fixture-6d61036b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08762024-01-01T00:00:00.000Z"fixture-6d61036c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08772024-01-01T00:00:00.000Z"fixture-6d61036d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08782024-01-01T00:00:00.000Z"fixture-6d61036e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08792024-01-01T00:00:00.000Z"fixture-6d61036f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08802024-01-01T00:00:00.000Z"fixture-6d610370"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08812024-01-01T00:00:00.000Z"fixture-6d610371"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08822024-01-01T00:00:00.000Z"fixture-6d610372"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08832024-01-01T00:00:00.000Z"fixture-6d610373"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08842024-01-01T00:00:00.000Z"fixture-6d610374"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08852024-01-01T00:00:00.000Z"fixture-6d610375"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08862024-01-01T00:00:00.000Z"fixture-6d610376"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08872024-01-01T00:00:00.000Z"fixture-6d610377"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08882024-01-01T00:00:00.000Z"fixture-6d610378"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08892024-01-01T00:00:00.000Z"fixture-6d610379"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08902024-01-01T00:00:00.000Z"fixture-6d61037a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08912024-01-01T00:00:00.000Z"fixture-6d61037b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08922024-01-01T00:00:00.000Z"fixture-6d61037c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08932024-01-01T00:00:00.000Z"fixture-6d61037d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08942024-01-01T00:00:00.000Z"fixture-6d61037e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08952024-01-01T00:00:00.000Z"fixture-6d61037f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08962024-01-01T00:00:00.000Z"fixture-6d610380"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08972024-01-01T00:00:00.000Z"fixture-6d610381"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08982024-01-01T00:00:00.000Z"fixture-6d610382"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/08992024-01-01T00:00:00.000Z"fixture-6d610383"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09002024-01-01T00:00:00.000Z"fixture-6d610384"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09012024-01-01T00:00:00.000Z"fixture-6d610385"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09022024-01-01T00:00:00.000Z"fixture-6d610386"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09032024-01-01T00:00:00.000Z"fixture-6d610387"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09042024-01-01T00:00:00.000Z"fixture-6d610388"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09052024-01-01T00:00:00.000Z"fixture-6d610389"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09062024-01-01T00:00:00.000Z"fixture-6d61038a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09072024-01-01T00:00:00.000Z"fixture-6d61038b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09082024-01-01T00:00:00.000Z"fixture-6d61038c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09092024-01-01T00:00:00.000Z"fixture-6d61038d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09102024-01-01T00:00:00.000Z"fixture-6d61038e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09112024-01-01T00:00:00.000Z"fixture-6d61038f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09122024-01-01T00:00:00.000Z"fixture-6d610390"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09132024-01-01T00:00:00.000Z"fixture-6d610391"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09142024-01-01T00:00:00.000Z"fixture-6d610392"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09152024-01-01T00:00:00.000Z"fixture-6d610393"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09162024-01-01T00:00:00.000Z"fixture-6d610394"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09172024-01-01T00:00:00.000Z"fixture-6d610395"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09182024-01-01T00:00:00.000Z"fixture-6d610396"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09192024-01-01T00:00:00.000Z"fixture-6d610397"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09202024-01-01T00:00:00.000Z"fixture-6d610398"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09212024-01-01T00:00:00.000Z"fixture-6d610399"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09222024-01-01T00:00:00.000Z"fixture-6d61039a"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09232024-01-01T00:00:00.000Z"fixture-6d61039b"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09242024-01-01T00:00:00.000Z"fixture-6d61039c"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09252024-01-01T00:00:00.000Z"fixture-6d61039d"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09262024-01-01T00:00:00.000Z"fixture-6d61039e"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09272024-01-01T00:00:00.000Z"fixture-6d61039f"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09282024-01-01T00:00:00.000Z"fixture-6d6103a0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09292024-01-01T00:00:00.000Z"fixture-6d6103a1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09302024-01-01T00:00:00.000Z"fixture-6d6103a2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09312024-01-01T00:00:00.000Z"fixture-6d6103a3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09322024-01-01T00:00:00.000Z"fixture-6d6103a4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09332024-01-01T00:00:00.000Z"fixture-6d6103a5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09342024-01-01T00:00:00.000Z"fixture-6d6103a6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09352024-01-01T00:00:00.000Z"fixture-6d6103a7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09362024-01-01T00:00:00.000Z"fixture-6d6103a8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09372024-01-01T00:00:00.000Z"fixture-6d6103a9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09382024-01-01T00:00:00.000Z"fixture-6d6103aa"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09392024-01-01T00:00:00.000Z"fixture-6d6103ab"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09402024-01-01T00:00:00.000Z"fixture-6d6103ac"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09412024-01-01T00:00:00.000Z"fixture-6d6103ad"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09422024-01-01T00:00:00.000Z"fixture-6d6103ae"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09432024-01-01T00:00:00.000Z"fixture-6d6103af"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09442024-01-01T00:00:00.000Z"fixture-6d6103b0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09452024-01-01T00:00:00.000Z"fixture-6d6103b1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09462024-01-01T00:00:00.000Z"fixture-6d6103b2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09472024-01-01T00:00:00.000Z"fixture-6d6103b3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09482024-01-01T00:00:00.000Z"fixture-6d6103b4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09492024-01-01T00:00:00.000Z"fixture-6d6103b5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09502024-01-01T00:00:00.000Z"fixture-6d6103b6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09512024-01-01T00:00:00.000Z"fixture-6d6103b7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09522024-01-01T00:00:00.000Z"fixture-6d6103b8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09532024-01-01T00:00:00.000Z"fixture-6d6103b9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09542024-01-01T00:00:00.000Z"fixture-6d6103ba"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09552024-01-01T00:00:00.000Z"fixture-6d6103bb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09562024-01-01T00:00:00.000Z"fixture-6d6103bc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09572024-01-01T00:00:00.000Z"fixture-6d6103bd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09582024-01-01T00:00:00.000Z"fixture-6d6103be"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09592024-01-01T00:00:00.000Z"fixture-6d6103bf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09602024-01-01T00:00:00.000Z"fixture-6d6103c0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09612024-01-01T00:00:00.000Z"fixture-6d6103c1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09622024-01-01T00:00:00.000Z"fixture-6d6103c2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09632024-01-01T00:00:00.000Z"fixture-6d6103c3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09642024-01-01T00:00:00.000Z"fixture-6d6103c4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09652024-01-01T00:00:00.000Z"fixture-6d6103c5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09662024-01-01T00:00:00.000Z"fixture-6d6103c6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09672024-01-01T00:00:00.000Z"fixture-6d6103c7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09682024-01-01T00:00:00.000Z"fixture-6d6103c8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09692024-01-01T00:00:00.000Z"fixture-6d6103c9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09702024-01-01T00:00:00.000Z"fixture-6d6103ca"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09712024-01-01T00:00:00.000Z"fixture-6d6103cb"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09722024-01-01T00:00:00.000Z"fixture-6d6103cc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09732024-01-01T00:00:00.000Z"fixture-6d6103cd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09742024-01-01T00:00:00.000Z"fixture-6d6103ce"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09752024-01-01T00:00:00.000Z"fixture-6d6103cf"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09762024-01-01T00:00:00.000Z"fixture-6d6103d0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09772024-01-01T00:00:00.000Z"fixture-6d6103d1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09782024-01-01T00:00:00.000Z"fixture-6d6103d2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09792024-01-01T00:00:00.000Z"fixture-6d6103d3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09802024-01-01T00:00:00.000Z"fixture-6d6103d4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09812024-01-01T00:00:00.000Z"fixture-6d6103d5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09822024-01-01T00:00:00.000Z"fixture-6d6103d6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09832024-01-01T00:00:00.000Z"fixture-6d6103d7"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09842024-01-01T00:00:00.000Z"fixture-6d6103d8"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09852024-01-01T00:00:00.000Z"fixture-6d6103d9"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09862024-01-01T00:00:00.000Z"fixture-6d6103da"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09872024-01-01T00:00:00.000Z"fixture-6d6103db"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09882024-01-01T00:00:00.000Z"fixture-6d6103dc"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09892024-01-01T00:00:00.000Z"fixture-6d6103dd"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09902024-01-01T00:00:00.000Z"fixture-6d6103de"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09912024-01-01T00:00:00.000Z"fixture-6d6103df"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09922024-01-01T00:00:00.000Z"fixture-6d6103e0"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09932024-01-01T00:00:00.000Z"fixture-6d6103e1"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09942024-01-01T00:00:00.000Z"fixture-6d6103e2"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09952024-01-01T00:00:00.000Z"fixture-6d6103e3"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09962024-01-01T00:00:00.000Z"fixture-6d6103e4"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09972024-01-01T00:00:00.000Z"fixture-6d6103e5"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09982024-01-01T00:00:00.000Z"fixture-6d6103e6"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/many/09992024-01-01T00:00:00.000Z"fixture-6d6103e7"CRC64NVMEFULL_OBJECT1STANDARD"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
},
{
"alternatives": [
@@ -102181,7 +140959,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -102189,7 +140967,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -102201,27 +140979,27 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "1"
}
},
{
- "at": "/query/prefix",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/many/"
+ "value": "fixture-upload+/276ca18046f9="
}
},
{
- "at": "/query/continuation-token",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-marker+/3a4e1000="
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -102235,16 +141013,55 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000falseobject-tests/many/10002024-01-01T00:00:00.000Z"fixture-6d6103e8"CRC64NVMEFULL_OBJECT1STANDARD"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
- },
+ }
+ ],
+ "optional": true
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InternalError"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/staged-after-abort",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "staged after abort",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/aborted.bin",
+ "op": "s3.list_parts",
+ "upload_id": "fixture-upload+/f85cf0cd3a3f="
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -102260,7 +141077,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/aborted.bin"
}
},
{
@@ -102272,35 +141089,254 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture-upload+/f85cf0cd3a3f="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nNoSuchUploadFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "NoSuchUpload"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/staged-replacement",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "staged replacement",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/replaced.bin",
+ "op": "s3.list_parts",
+ "upload_id": "fixture-upload+/6ba3c5e480a2="
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
}
},
{
- "at": "/query/prefix",
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/replaced.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/6ba3c5e480a2="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/multipart/replaced.binfixture-upload+/6ba3c5e480a2=fixture-ownerfixture-ownerfixture-ownerSTANDARD021000false12024-01-01T00:00:00.000Z"fixture-5945c592bad7"122024-01-01T00:00:00.000Z"fixture-3c6b3668db13"6"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/parts/0/number",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/parts/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/parts/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-5945c592bad7\""
+ }
+ },
+ {
+ "at": "/value/parts/1/number",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/parts/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 6
+ }
+ },
+ {
+ "at": "/value/parts/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-3c6b3668db13\""
+ }
+ },
+ {
+ "at": "/value/parts",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/staged-unknown-upload",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "staged unknown upload",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.list_parts",
+ "upload_id": "fixture-upload+/4d0d5ccc4993="
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/many/"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
- "at": "/query/continuation-token",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-marker+/3a4e1000="
+ "value": ""
}
},
{
- "at": "/query/encoding-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "fixture-upload+/4d0d5ccc4993="
}
}
],
@@ -102309,17 +141345,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000urlfalseobject-tests/many/10002024-01-01T00:00:00.000Z"fixture-6d6103e8"CRC64NVMEFULL_OBJECT1STANDARD"
+ "data": "\nNoSuchUploadFixture error"
},
"framing": "chunked"
}
@@ -102333,1034 +141368,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/keys",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": [
- "object-tests/many/0000",
- "object-tests/many/0001",
- "object-tests/many/0002",
- "object-tests/many/0003",
- "object-tests/many/0004",
- "object-tests/many/0005",
- "object-tests/many/0006",
- "object-tests/many/0007",
- "object-tests/many/0008",
- "object-tests/many/0009",
- "object-tests/many/0010",
- "object-tests/many/0011",
- "object-tests/many/0012",
- "object-tests/many/0013",
- "object-tests/many/0014",
- "object-tests/many/0015",
- "object-tests/many/0016",
- "object-tests/many/0017",
- "object-tests/many/0018",
- "object-tests/many/0019",
- "object-tests/many/0020",
- "object-tests/many/0021",
- "object-tests/many/0022",
- "object-tests/many/0023",
- "object-tests/many/0024",
- "object-tests/many/0025",
- "object-tests/many/0026",
- "object-tests/many/0027",
- "object-tests/many/0028",
- "object-tests/many/0029",
- "object-tests/many/0030",
- "object-tests/many/0031",
- "object-tests/many/0032",
- "object-tests/many/0033",
- "object-tests/many/0034",
- "object-tests/many/0035",
- "object-tests/many/0036",
- "object-tests/many/0037",
- "object-tests/many/0038",
- "object-tests/many/0039",
- "object-tests/many/0040",
- "object-tests/many/0041",
- "object-tests/many/0042",
- "object-tests/many/0043",
- "object-tests/many/0044",
- "object-tests/many/0045",
- "object-tests/many/0046",
- "object-tests/many/0047",
- "object-tests/many/0048",
- "object-tests/many/0049",
- "object-tests/many/0050",
- "object-tests/many/0051",
- "object-tests/many/0052",
- "object-tests/many/0053",
- "object-tests/many/0054",
- "object-tests/many/0055",
- "object-tests/many/0056",
- "object-tests/many/0057",
- "object-tests/many/0058",
- "object-tests/many/0059",
- "object-tests/many/0060",
- "object-tests/many/0061",
- "object-tests/many/0062",
- "object-tests/many/0063",
- "object-tests/many/0064",
- "object-tests/many/0065",
- "object-tests/many/0066",
- "object-tests/many/0067",
- "object-tests/many/0068",
- "object-tests/many/0069",
- "object-tests/many/0070",
- "object-tests/many/0071",
- "object-tests/many/0072",
- "object-tests/many/0073",
- "object-tests/many/0074",
- "object-tests/many/0075",
- "object-tests/many/0076",
- "object-tests/many/0077",
- "object-tests/many/0078",
- "object-tests/many/0079",
- "object-tests/many/0080",
- "object-tests/many/0081",
- "object-tests/many/0082",
- "object-tests/many/0083",
- "object-tests/many/0084",
- "object-tests/many/0085",
- "object-tests/many/0086",
- "object-tests/many/0087",
- "object-tests/many/0088",
- "object-tests/many/0089",
- "object-tests/many/0090",
- "object-tests/many/0091",
- "object-tests/many/0092",
- "object-tests/many/0093",
- "object-tests/many/0094",
- "object-tests/many/0095",
- "object-tests/many/0096",
- "object-tests/many/0097",
- "object-tests/many/0098",
- "object-tests/many/0099",
- "object-tests/many/0100",
- "object-tests/many/0101",
- "object-tests/many/0102",
- "object-tests/many/0103",
- "object-tests/many/0104",
- "object-tests/many/0105",
- "object-tests/many/0106",
- "object-tests/many/0107",
- "object-tests/many/0108",
- "object-tests/many/0109",
- "object-tests/many/0110",
- "object-tests/many/0111",
- "object-tests/many/0112",
- "object-tests/many/0113",
- "object-tests/many/0114",
- "object-tests/many/0115",
- "object-tests/many/0116",
- "object-tests/many/0117",
- "object-tests/many/0118",
- "object-tests/many/0119",
- "object-tests/many/0120",
- "object-tests/many/0121",
- "object-tests/many/0122",
- "object-tests/many/0123",
- "object-tests/many/0124",
- "object-tests/many/0125",
- "object-tests/many/0126",
- "object-tests/many/0127",
- "object-tests/many/0128",
- "object-tests/many/0129",
- "object-tests/many/0130",
- "object-tests/many/0131",
- "object-tests/many/0132",
- "object-tests/many/0133",
- "object-tests/many/0134",
- "object-tests/many/0135",
- "object-tests/many/0136",
- "object-tests/many/0137",
- "object-tests/many/0138",
- "object-tests/many/0139",
- "object-tests/many/0140",
- "object-tests/many/0141",
- "object-tests/many/0142",
- "object-tests/many/0143",
- "object-tests/many/0144",
- "object-tests/many/0145",
- "object-tests/many/0146",
- "object-tests/many/0147",
- "object-tests/many/0148",
- "object-tests/many/0149",
- "object-tests/many/0150",
- "object-tests/many/0151",
- "object-tests/many/0152",
- "object-tests/many/0153",
- "object-tests/many/0154",
- "object-tests/many/0155",
- "object-tests/many/0156",
- "object-tests/many/0157",
- "object-tests/many/0158",
- "object-tests/many/0159",
- "object-tests/many/0160",
- "object-tests/many/0161",
- "object-tests/many/0162",
- "object-tests/many/0163",
- "object-tests/many/0164",
- "object-tests/many/0165",
- "object-tests/many/0166",
- "object-tests/many/0167",
- "object-tests/many/0168",
- "object-tests/many/0169",
- "object-tests/many/0170",
- "object-tests/many/0171",
- "object-tests/many/0172",
- "object-tests/many/0173",
- "object-tests/many/0174",
- "object-tests/many/0175",
- "object-tests/many/0176",
- "object-tests/many/0177",
- "object-tests/many/0178",
- "object-tests/many/0179",
- "object-tests/many/0180",
- "object-tests/many/0181",
- "object-tests/many/0182",
- "object-tests/many/0183",
- "object-tests/many/0184",
- "object-tests/many/0185",
- "object-tests/many/0186",
- "object-tests/many/0187",
- "object-tests/many/0188",
- "object-tests/many/0189",
- "object-tests/many/0190",
- "object-tests/many/0191",
- "object-tests/many/0192",
- "object-tests/many/0193",
- "object-tests/many/0194",
- "object-tests/many/0195",
- "object-tests/many/0196",
- "object-tests/many/0197",
- "object-tests/many/0198",
- "object-tests/many/0199",
- "object-tests/many/0200",
- "object-tests/many/0201",
- "object-tests/many/0202",
- "object-tests/many/0203",
- "object-tests/many/0204",
- "object-tests/many/0205",
- "object-tests/many/0206",
- "object-tests/many/0207",
- "object-tests/many/0208",
- "object-tests/many/0209",
- "object-tests/many/0210",
- "object-tests/many/0211",
- "object-tests/many/0212",
- "object-tests/many/0213",
- "object-tests/many/0214",
- "object-tests/many/0215",
- "object-tests/many/0216",
- "object-tests/many/0217",
- "object-tests/many/0218",
- "object-tests/many/0219",
- "object-tests/many/0220",
- "object-tests/many/0221",
- "object-tests/many/0222",
- "object-tests/many/0223",
- "object-tests/many/0224",
- "object-tests/many/0225",
- "object-tests/many/0226",
- "object-tests/many/0227",
- "object-tests/many/0228",
- "object-tests/many/0229",
- "object-tests/many/0230",
- "object-tests/many/0231",
- "object-tests/many/0232",
- "object-tests/many/0233",
- "object-tests/many/0234",
- "object-tests/many/0235",
- "object-tests/many/0236",
- "object-tests/many/0237",
- "object-tests/many/0238",
- "object-tests/many/0239",
- "object-tests/many/0240",
- "object-tests/many/0241",
- "object-tests/many/0242",
- "object-tests/many/0243",
- "object-tests/many/0244",
- "object-tests/many/0245",
- "object-tests/many/0246",
- "object-tests/many/0247",
- "object-tests/many/0248",
- "object-tests/many/0249",
- "object-tests/many/0250",
- "object-tests/many/0251",
- "object-tests/many/0252",
- "object-tests/many/0253",
- "object-tests/many/0254",
- "object-tests/many/0255",
- "object-tests/many/0256",
- "object-tests/many/0257",
- "object-tests/many/0258",
- "object-tests/many/0259",
- "object-tests/many/0260",
- "object-tests/many/0261",
- "object-tests/many/0262",
- "object-tests/many/0263",
- "object-tests/many/0264",
- "object-tests/many/0265",
- "object-tests/many/0266",
- "object-tests/many/0267",
- "object-tests/many/0268",
- "object-tests/many/0269",
- "object-tests/many/0270",
- "object-tests/many/0271",
- "object-tests/many/0272",
- "object-tests/many/0273",
- "object-tests/many/0274",
- "object-tests/many/0275",
- "object-tests/many/0276",
- "object-tests/many/0277",
- "object-tests/many/0278",
- "object-tests/many/0279",
- "object-tests/many/0280",
- "object-tests/many/0281",
- "object-tests/many/0282",
- "object-tests/many/0283",
- "object-tests/many/0284",
- "object-tests/many/0285",
- "object-tests/many/0286",
- "object-tests/many/0287",
- "object-tests/many/0288",
- "object-tests/many/0289",
- "object-tests/many/0290",
- "object-tests/many/0291",
- "object-tests/many/0292",
- "object-tests/many/0293",
- "object-tests/many/0294",
- "object-tests/many/0295",
- "object-tests/many/0296",
- "object-tests/many/0297",
- "object-tests/many/0298",
- "object-tests/many/0299",
- "object-tests/many/0300",
- "object-tests/many/0301",
- "object-tests/many/0302",
- "object-tests/many/0303",
- "object-tests/many/0304",
- "object-tests/many/0305",
- "object-tests/many/0306",
- "object-tests/many/0307",
- "object-tests/many/0308",
- "object-tests/many/0309",
- "object-tests/many/0310",
- "object-tests/many/0311",
- "object-tests/many/0312",
- "object-tests/many/0313",
- "object-tests/many/0314",
- "object-tests/many/0315",
- "object-tests/many/0316",
- "object-tests/many/0317",
- "object-tests/many/0318",
- "object-tests/many/0319",
- "object-tests/many/0320",
- "object-tests/many/0321",
- "object-tests/many/0322",
- "object-tests/many/0323",
- "object-tests/many/0324",
- "object-tests/many/0325",
- "object-tests/many/0326",
- "object-tests/many/0327",
- "object-tests/many/0328",
- "object-tests/many/0329",
- "object-tests/many/0330",
- "object-tests/many/0331",
- "object-tests/many/0332",
- "object-tests/many/0333",
- "object-tests/many/0334",
- "object-tests/many/0335",
- "object-tests/many/0336",
- "object-tests/many/0337",
- "object-tests/many/0338",
- "object-tests/many/0339",
- "object-tests/many/0340",
- "object-tests/many/0341",
- "object-tests/many/0342",
- "object-tests/many/0343",
- "object-tests/many/0344",
- "object-tests/many/0345",
- "object-tests/many/0346",
- "object-tests/many/0347",
- "object-tests/many/0348",
- "object-tests/many/0349",
- "object-tests/many/0350",
- "object-tests/many/0351",
- "object-tests/many/0352",
- "object-tests/many/0353",
- "object-tests/many/0354",
- "object-tests/many/0355",
- "object-tests/many/0356",
- "object-tests/many/0357",
- "object-tests/many/0358",
- "object-tests/many/0359",
- "object-tests/many/0360",
- "object-tests/many/0361",
- "object-tests/many/0362",
- "object-tests/many/0363",
- "object-tests/many/0364",
- "object-tests/many/0365",
- "object-tests/many/0366",
- "object-tests/many/0367",
- "object-tests/many/0368",
- "object-tests/many/0369",
- "object-tests/many/0370",
- "object-tests/many/0371",
- "object-tests/many/0372",
- "object-tests/many/0373",
- "object-tests/many/0374",
- "object-tests/many/0375",
- "object-tests/many/0376",
- "object-tests/many/0377",
- "object-tests/many/0378",
- "object-tests/many/0379",
- "object-tests/many/0380",
- "object-tests/many/0381",
- "object-tests/many/0382",
- "object-tests/many/0383",
- "object-tests/many/0384",
- "object-tests/many/0385",
- "object-tests/many/0386",
- "object-tests/many/0387",
- "object-tests/many/0388",
- "object-tests/many/0389",
- "object-tests/many/0390",
- "object-tests/many/0391",
- "object-tests/many/0392",
- "object-tests/many/0393",
- "object-tests/many/0394",
- "object-tests/many/0395",
- "object-tests/many/0396",
- "object-tests/many/0397",
- "object-tests/many/0398",
- "object-tests/many/0399",
- "object-tests/many/0400",
- "object-tests/many/0401",
- "object-tests/many/0402",
- "object-tests/many/0403",
- "object-tests/many/0404",
- "object-tests/many/0405",
- "object-tests/many/0406",
- "object-tests/many/0407",
- "object-tests/many/0408",
- "object-tests/many/0409",
- "object-tests/many/0410",
- "object-tests/many/0411",
- "object-tests/many/0412",
- "object-tests/many/0413",
- "object-tests/many/0414",
- "object-tests/many/0415",
- "object-tests/many/0416",
- "object-tests/many/0417",
- "object-tests/many/0418",
- "object-tests/many/0419",
- "object-tests/many/0420",
- "object-tests/many/0421",
- "object-tests/many/0422",
- "object-tests/many/0423",
- "object-tests/many/0424",
- "object-tests/many/0425",
- "object-tests/many/0426",
- "object-tests/many/0427",
- "object-tests/many/0428",
- "object-tests/many/0429",
- "object-tests/many/0430",
- "object-tests/many/0431",
- "object-tests/many/0432",
- "object-tests/many/0433",
- "object-tests/many/0434",
- "object-tests/many/0435",
- "object-tests/many/0436",
- "object-tests/many/0437",
- "object-tests/many/0438",
- "object-tests/many/0439",
- "object-tests/many/0440",
- "object-tests/many/0441",
- "object-tests/many/0442",
- "object-tests/many/0443",
- "object-tests/many/0444",
- "object-tests/many/0445",
- "object-tests/many/0446",
- "object-tests/many/0447",
- "object-tests/many/0448",
- "object-tests/many/0449",
- "object-tests/many/0450",
- "object-tests/many/0451",
- "object-tests/many/0452",
- "object-tests/many/0453",
- "object-tests/many/0454",
- "object-tests/many/0455",
- "object-tests/many/0456",
- "object-tests/many/0457",
- "object-tests/many/0458",
- "object-tests/many/0459",
- "object-tests/many/0460",
- "object-tests/many/0461",
- "object-tests/many/0462",
- "object-tests/many/0463",
- "object-tests/many/0464",
- "object-tests/many/0465",
- "object-tests/many/0466",
- "object-tests/many/0467",
- "object-tests/many/0468",
- "object-tests/many/0469",
- "object-tests/many/0470",
- "object-tests/many/0471",
- "object-tests/many/0472",
- "object-tests/many/0473",
- "object-tests/many/0474",
- "object-tests/many/0475",
- "object-tests/many/0476",
- "object-tests/many/0477",
- "object-tests/many/0478",
- "object-tests/many/0479",
- "object-tests/many/0480",
- "object-tests/many/0481",
- "object-tests/many/0482",
- "object-tests/many/0483",
- "object-tests/many/0484",
- "object-tests/many/0485",
- "object-tests/many/0486",
- "object-tests/many/0487",
- "object-tests/many/0488",
- "object-tests/many/0489",
- "object-tests/many/0490",
- "object-tests/many/0491",
- "object-tests/many/0492",
- "object-tests/many/0493",
- "object-tests/many/0494",
- "object-tests/many/0495",
- "object-tests/many/0496",
- "object-tests/many/0497",
- "object-tests/many/0498",
- "object-tests/many/0499",
- "object-tests/many/0500",
- "object-tests/many/0501",
- "object-tests/many/0502",
- "object-tests/many/0503",
- "object-tests/many/0504",
- "object-tests/many/0505",
- "object-tests/many/0506",
- "object-tests/many/0507",
- "object-tests/many/0508",
- "object-tests/many/0509",
- "object-tests/many/0510",
- "object-tests/many/0511",
- "object-tests/many/0512",
- "object-tests/many/0513",
- "object-tests/many/0514",
- "object-tests/many/0515",
- "object-tests/many/0516",
- "object-tests/many/0517",
- "object-tests/many/0518",
- "object-tests/many/0519",
- "object-tests/many/0520",
- "object-tests/many/0521",
- "object-tests/many/0522",
- "object-tests/many/0523",
- "object-tests/many/0524",
- "object-tests/many/0525",
- "object-tests/many/0526",
- "object-tests/many/0527",
- "object-tests/many/0528",
- "object-tests/many/0529",
- "object-tests/many/0530",
- "object-tests/many/0531",
- "object-tests/many/0532",
- "object-tests/many/0533",
- "object-tests/many/0534",
- "object-tests/many/0535",
- "object-tests/many/0536",
- "object-tests/many/0537",
- "object-tests/many/0538",
- "object-tests/many/0539",
- "object-tests/many/0540",
- "object-tests/many/0541",
- "object-tests/many/0542",
- "object-tests/many/0543",
- "object-tests/many/0544",
- "object-tests/many/0545",
- "object-tests/many/0546",
- "object-tests/many/0547",
- "object-tests/many/0548",
- "object-tests/many/0549",
- "object-tests/many/0550",
- "object-tests/many/0551",
- "object-tests/many/0552",
- "object-tests/many/0553",
- "object-tests/many/0554",
- "object-tests/many/0555",
- "object-tests/many/0556",
- "object-tests/many/0557",
- "object-tests/many/0558",
- "object-tests/many/0559",
- "object-tests/many/0560",
- "object-tests/many/0561",
- "object-tests/many/0562",
- "object-tests/many/0563",
- "object-tests/many/0564",
- "object-tests/many/0565",
- "object-tests/many/0566",
- "object-tests/many/0567",
- "object-tests/many/0568",
- "object-tests/many/0569",
- "object-tests/many/0570",
- "object-tests/many/0571",
- "object-tests/many/0572",
- "object-tests/many/0573",
- "object-tests/many/0574",
- "object-tests/many/0575",
- "object-tests/many/0576",
- "object-tests/many/0577",
- "object-tests/many/0578",
- "object-tests/many/0579",
- "object-tests/many/0580",
- "object-tests/many/0581",
- "object-tests/many/0582",
- "object-tests/many/0583",
- "object-tests/many/0584",
- "object-tests/many/0585",
- "object-tests/many/0586",
- "object-tests/many/0587",
- "object-tests/many/0588",
- "object-tests/many/0589",
- "object-tests/many/0590",
- "object-tests/many/0591",
- "object-tests/many/0592",
- "object-tests/many/0593",
- "object-tests/many/0594",
- "object-tests/many/0595",
- "object-tests/many/0596",
- "object-tests/many/0597",
- "object-tests/many/0598",
- "object-tests/many/0599",
- "object-tests/many/0600",
- "object-tests/many/0601",
- "object-tests/many/0602",
- "object-tests/many/0603",
- "object-tests/many/0604",
- "object-tests/many/0605",
- "object-tests/many/0606",
- "object-tests/many/0607",
- "object-tests/many/0608",
- "object-tests/many/0609",
- "object-tests/many/0610",
- "object-tests/many/0611",
- "object-tests/many/0612",
- "object-tests/many/0613",
- "object-tests/many/0614",
- "object-tests/many/0615",
- "object-tests/many/0616",
- "object-tests/many/0617",
- "object-tests/many/0618",
- "object-tests/many/0619",
- "object-tests/many/0620",
- "object-tests/many/0621",
- "object-tests/many/0622",
- "object-tests/many/0623",
- "object-tests/many/0624",
- "object-tests/many/0625",
- "object-tests/many/0626",
- "object-tests/many/0627",
- "object-tests/many/0628",
- "object-tests/many/0629",
- "object-tests/many/0630",
- "object-tests/many/0631",
- "object-tests/many/0632",
- "object-tests/many/0633",
- "object-tests/many/0634",
- "object-tests/many/0635",
- "object-tests/many/0636",
- "object-tests/many/0637",
- "object-tests/many/0638",
- "object-tests/many/0639",
- "object-tests/many/0640",
- "object-tests/many/0641",
- "object-tests/many/0642",
- "object-tests/many/0643",
- "object-tests/many/0644",
- "object-tests/many/0645",
- "object-tests/many/0646",
- "object-tests/many/0647",
- "object-tests/many/0648",
- "object-tests/many/0649",
- "object-tests/many/0650",
- "object-tests/many/0651",
- "object-tests/many/0652",
- "object-tests/many/0653",
- "object-tests/many/0654",
- "object-tests/many/0655",
- "object-tests/many/0656",
- "object-tests/many/0657",
- "object-tests/many/0658",
- "object-tests/many/0659",
- "object-tests/many/0660",
- "object-tests/many/0661",
- "object-tests/many/0662",
- "object-tests/many/0663",
- "object-tests/many/0664",
- "object-tests/many/0665",
- "object-tests/many/0666",
- "object-tests/many/0667",
- "object-tests/many/0668",
- "object-tests/many/0669",
- "object-tests/many/0670",
- "object-tests/many/0671",
- "object-tests/many/0672",
- "object-tests/many/0673",
- "object-tests/many/0674",
- "object-tests/many/0675",
- "object-tests/many/0676",
- "object-tests/many/0677",
- "object-tests/many/0678",
- "object-tests/many/0679",
- "object-tests/many/0680",
- "object-tests/many/0681",
- "object-tests/many/0682",
- "object-tests/many/0683",
- "object-tests/many/0684",
- "object-tests/many/0685",
- "object-tests/many/0686",
- "object-tests/many/0687",
- "object-tests/many/0688",
- "object-tests/many/0689",
- "object-tests/many/0690",
- "object-tests/many/0691",
- "object-tests/many/0692",
- "object-tests/many/0693",
- "object-tests/many/0694",
- "object-tests/many/0695",
- "object-tests/many/0696",
- "object-tests/many/0697",
- "object-tests/many/0698",
- "object-tests/many/0699",
- "object-tests/many/0700",
- "object-tests/many/0701",
- "object-tests/many/0702",
- "object-tests/many/0703",
- "object-tests/many/0704",
- "object-tests/many/0705",
- "object-tests/many/0706",
- "object-tests/many/0707",
- "object-tests/many/0708",
- "object-tests/many/0709",
- "object-tests/many/0710",
- "object-tests/many/0711",
- "object-tests/many/0712",
- "object-tests/many/0713",
- "object-tests/many/0714",
- "object-tests/many/0715",
- "object-tests/many/0716",
- "object-tests/many/0717",
- "object-tests/many/0718",
- "object-tests/many/0719",
- "object-tests/many/0720",
- "object-tests/many/0721",
- "object-tests/many/0722",
- "object-tests/many/0723",
- "object-tests/many/0724",
- "object-tests/many/0725",
- "object-tests/many/0726",
- "object-tests/many/0727",
- "object-tests/many/0728",
- "object-tests/many/0729",
- "object-tests/many/0730",
- "object-tests/many/0731",
- "object-tests/many/0732",
- "object-tests/many/0733",
- "object-tests/many/0734",
- "object-tests/many/0735",
- "object-tests/many/0736",
- "object-tests/many/0737",
- "object-tests/many/0738",
- "object-tests/many/0739",
- "object-tests/many/0740",
- "object-tests/many/0741",
- "object-tests/many/0742",
- "object-tests/many/0743",
- "object-tests/many/0744",
- "object-tests/many/0745",
- "object-tests/many/0746",
- "object-tests/many/0747",
- "object-tests/many/0748",
- "object-tests/many/0749",
- "object-tests/many/0750",
- "object-tests/many/0751",
- "object-tests/many/0752",
- "object-tests/many/0753",
- "object-tests/many/0754",
- "object-tests/many/0755",
- "object-tests/many/0756",
- "object-tests/many/0757",
- "object-tests/many/0758",
- "object-tests/many/0759",
- "object-tests/many/0760",
- "object-tests/many/0761",
- "object-tests/many/0762",
- "object-tests/many/0763",
- "object-tests/many/0764",
- "object-tests/many/0765",
- "object-tests/many/0766",
- "object-tests/many/0767",
- "object-tests/many/0768",
- "object-tests/many/0769",
- "object-tests/many/0770",
- "object-tests/many/0771",
- "object-tests/many/0772",
- "object-tests/many/0773",
- "object-tests/many/0774",
- "object-tests/many/0775",
- "object-tests/many/0776",
- "object-tests/many/0777",
- "object-tests/many/0778",
- "object-tests/many/0779",
- "object-tests/many/0780",
- "object-tests/many/0781",
- "object-tests/many/0782",
- "object-tests/many/0783",
- "object-tests/many/0784",
- "object-tests/many/0785",
- "object-tests/many/0786",
- "object-tests/many/0787",
- "object-tests/many/0788",
- "object-tests/many/0789",
- "object-tests/many/0790",
- "object-tests/many/0791",
- "object-tests/many/0792",
- "object-tests/many/0793",
- "object-tests/many/0794",
- "object-tests/many/0795",
- "object-tests/many/0796",
- "object-tests/many/0797",
- "object-tests/many/0798",
- "object-tests/many/0799",
- "object-tests/many/0800",
- "object-tests/many/0801",
- "object-tests/many/0802",
- "object-tests/many/0803",
- "object-tests/many/0804",
- "object-tests/many/0805",
- "object-tests/many/0806",
- "object-tests/many/0807",
- "object-tests/many/0808",
- "object-tests/many/0809",
- "object-tests/many/0810",
- "object-tests/many/0811",
- "object-tests/many/0812",
- "object-tests/many/0813",
- "object-tests/many/0814",
- "object-tests/many/0815",
- "object-tests/many/0816",
- "object-tests/many/0817",
- "object-tests/many/0818",
- "object-tests/many/0819",
- "object-tests/many/0820",
- "object-tests/many/0821",
- "object-tests/many/0822",
- "object-tests/many/0823",
- "object-tests/many/0824",
- "object-tests/many/0825",
- "object-tests/many/0826",
- "object-tests/many/0827",
- "object-tests/many/0828",
- "object-tests/many/0829",
- "object-tests/many/0830",
- "object-tests/many/0831",
- "object-tests/many/0832",
- "object-tests/many/0833",
- "object-tests/many/0834",
- "object-tests/many/0835",
- "object-tests/many/0836",
- "object-tests/many/0837",
- "object-tests/many/0838",
- "object-tests/many/0839",
- "object-tests/many/0840",
- "object-tests/many/0841",
- "object-tests/many/0842",
- "object-tests/many/0843",
- "object-tests/many/0844",
- "object-tests/many/0845",
- "object-tests/many/0846",
- "object-tests/many/0847",
- "object-tests/many/0848",
- "object-tests/many/0849",
- "object-tests/many/0850",
- "object-tests/many/0851",
- "object-tests/many/0852",
- "object-tests/many/0853",
- "object-tests/many/0854",
- "object-tests/many/0855",
- "object-tests/many/0856",
- "object-tests/many/0857",
- "object-tests/many/0858",
- "object-tests/many/0859",
- "object-tests/many/0860",
- "object-tests/many/0861",
- "object-tests/many/0862",
- "object-tests/many/0863",
- "object-tests/many/0864",
- "object-tests/many/0865",
- "object-tests/many/0866",
- "object-tests/many/0867",
- "object-tests/many/0868",
- "object-tests/many/0869",
- "object-tests/many/0870",
- "object-tests/many/0871",
- "object-tests/many/0872",
- "object-tests/many/0873",
- "object-tests/many/0874",
- "object-tests/many/0875",
- "object-tests/many/0876",
- "object-tests/many/0877",
- "object-tests/many/0878",
- "object-tests/many/0879",
- "object-tests/many/0880",
- "object-tests/many/0881",
- "object-tests/many/0882",
- "object-tests/many/0883",
- "object-tests/many/0884",
- "object-tests/many/0885",
- "object-tests/many/0886",
- "object-tests/many/0887",
- "object-tests/many/0888",
- "object-tests/many/0889",
- "object-tests/many/0890",
- "object-tests/many/0891",
- "object-tests/many/0892",
- "object-tests/many/0893",
- "object-tests/many/0894",
- "object-tests/many/0895",
- "object-tests/many/0896",
- "object-tests/many/0897",
- "object-tests/many/0898",
- "object-tests/many/0899",
- "object-tests/many/0900",
- "object-tests/many/0901",
- "object-tests/many/0902",
- "object-tests/many/0903",
- "object-tests/many/0904",
- "object-tests/many/0905",
- "object-tests/many/0906",
- "object-tests/many/0907",
- "object-tests/many/0908",
- "object-tests/many/0909",
- "object-tests/many/0910",
- "object-tests/many/0911",
- "object-tests/many/0912",
- "object-tests/many/0913",
- "object-tests/many/0914",
- "object-tests/many/0915",
- "object-tests/many/0916",
- "object-tests/many/0917",
- "object-tests/many/0918",
- "object-tests/many/0919",
- "object-tests/many/0920",
- "object-tests/many/0921",
- "object-tests/many/0922",
- "object-tests/many/0923",
- "object-tests/many/0924",
- "object-tests/many/0925",
- "object-tests/many/0926",
- "object-tests/many/0927",
- "object-tests/many/0928",
- "object-tests/many/0929",
- "object-tests/many/0930",
- "object-tests/many/0931",
- "object-tests/many/0932",
- "object-tests/many/0933",
- "object-tests/many/0934",
- "object-tests/many/0935",
- "object-tests/many/0936",
- "object-tests/many/0937",
- "object-tests/many/0938",
- "object-tests/many/0939",
- "object-tests/many/0940",
- "object-tests/many/0941",
- "object-tests/many/0942",
- "object-tests/many/0943",
- "object-tests/many/0944",
- "object-tests/many/0945",
- "object-tests/many/0946",
- "object-tests/many/0947",
- "object-tests/many/0948",
- "object-tests/many/0949",
- "object-tests/many/0950",
- "object-tests/many/0951",
- "object-tests/many/0952",
- "object-tests/many/0953",
- "object-tests/many/0954",
- "object-tests/many/0955",
- "object-tests/many/0956",
- "object-tests/many/0957",
- "object-tests/many/0958",
- "object-tests/many/0959",
- "object-tests/many/0960",
- "object-tests/many/0961",
- "object-tests/many/0962",
- "object-tests/many/0963",
- "object-tests/many/0964",
- "object-tests/many/0965",
- "object-tests/many/0966",
- "object-tests/many/0967",
- "object-tests/many/0968",
- "object-tests/many/0969",
- "object-tests/many/0970",
- "object-tests/many/0971",
- "object-tests/many/0972",
- "object-tests/many/0973",
- "object-tests/many/0974",
- "object-tests/many/0975",
- "object-tests/many/0976",
- "object-tests/many/0977",
- "object-tests/many/0978",
- "object-tests/many/0979",
- "object-tests/many/0980",
- "object-tests/many/0981",
- "object-tests/many/0982",
- "object-tests/many/0983",
- "object-tests/many/0984",
- "object-tests/many/0985",
- "object-tests/many/0986",
- "object-tests/many/0987",
- "object-tests/many/0988",
- "object-tests/many/0989",
- "object-tests/many/0990",
- "object-tests/many/0991",
- "object-tests/many/0992",
- "object-tests/many/0993",
- "object-tests/many/0994",
- "object-tests/many/0995",
- "object-tests/many/0996",
- "object-tests/many/0997",
- "object-tests/many/0998",
- "object-tests/many/0999",
- "object-tests/many/1000"
- ]
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "NoSuchUpload"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/list-start-after",
+ "id": "operations/s3/staged",
"profile": "s3",
"lane": "core",
- "purpose": "Send start-after, and list only the keys after it",
+ "purpose": "staged",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/board/",
- "start_after": "object-tests/board/a.txt"
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.list_parts",
+ "upload_id": "fixture-upload+/276ca18046f9="
},
"exchanges": [
{
@@ -103380,7 +141421,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -103392,27 +141433,152 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/multipart/object.binfixture-upload+/276ca18046f9=fixture-ownerfixture-ownerfixture-ownerSTANDARD021000false12024-01-01T00:00:00.000Z"fixture-6d60d5bbaa47"524288022024-01-01T00:00:00.000Z"fixture-32b70ae425ac"6"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/parts/0/number",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/parts/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 5242880
+ }
+ },
+ {
+ "at": "/value/parts/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6d60d5bbaa47\""
+ }
+ },
+ {
+ "at": "/value/parts/1/number",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/parts/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 6
+ }
+ },
+ {
+ "at": "/value/parts/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-32b70ae425ac\""
+ }
+ },
+ {
+ "at": "/value/parts",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/start-bucket-missing",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "start bucket missing. A client reports it as container_not_found: the bucket or container is absent, not the object",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object.bin",
+ "op": "s3.create_multipart"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
}
},
{
- "at": "/query/prefix",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "/fixture/object.bin"
}
},
{
- "at": "/query/start-after",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/a.txt"
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploads",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
@@ -103421,9 +141587,216 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nNoSuchBucketFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "NoSuchBucket"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/start-unauthenticated",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.create_multipart"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploads",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 403,
"headers": {
"content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInvalidAccessKeyIdFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 403
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidAccessKeyId"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/start",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "start",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.create_multipart"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploads",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
"date": {
"from": "now"
},
@@ -103431,11 +141804,53 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/21000falseobject-tests/board/a.txtobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARD"
+ "data": "fixtureobject-tests/multipart/object.binfixture-upload+/276ca18046f9="
},
"framing": "chunked"
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/upload_id",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/start-content-properties",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Start a multipart upload with content properties, which the completed object keeps",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "cache_control": "max-age=3600",
+ "content_disposition": "attachment; filename=\"report.txt\"",
+ "content_language": "nl-NL",
+ "content_type": "text/plain; charset=utf-8",
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.create_multipart"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -103443,7 +141858,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -103451,7 +141866,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/multipart/object.bin"
}
},
{
@@ -103463,35 +141878,43 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/query/uploads",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": ""
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "text/plain; charset=utf-8"
}
},
{
- "at": "/query/start-after",
+ "at": "/headers/content-language",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/a.txt"
+ "value": "nl-NL"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/content-disposition",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "attachment; filename=\"report.txt\""
+ }
+ },
+ {
+ "at": "/headers/cache-control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
}
}
],
@@ -103502,7 +141925,6 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
@@ -103510,7 +141932,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/21000urlfalseobject-tests/board/a.txtobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARD"
+ "data": "fixtureobject-tests/multipart/object.binfixture-upload+/276ca18046f9="
},
"framing": "chunked"
}
@@ -103528,99 +141950,627 @@
}
},
{
- "at": "/value/entries/0/key",
+ "at": "/value/upload_id",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/nested/c.txt"
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/start-with-tags",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Start a multipart upload with tags, sent URL-encoded in x-amz-tagging, which the completed object keeps",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.create_multipart",
+ "tags": {
+ "project": "object-tests"
+ }
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploads",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-tagging",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "project=object-tests"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "fixtureobject-tests/multipart/object.binfixture-upload+/276ca18046f9="
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
}
},
{
- "at": "/value/entries/0/size",
+ "at": "/value/upload_id",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/start-with-storage-class",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "Start a multipart upload into a storage class, named in x-amz-storage-class",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.create_multipart",
+ "storage_class": "STANDARD_IA"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploads",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-storage-class",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "STANDARD_IA"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "fixtureobject-tests/multipart/object.binfixture-upload+/276ca18046f9="
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
}
},
{
- "at": "/value/entries/0/etag",
+ "at": "/value/upload_id",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-626f61720001\""
+ "value": "fixture-upload+/276ca18046f9="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/azure/put-metadata-non-ascii-value",
+ "profile": "azure",
+ "lane": "core",
+ "purpose": "put metadata non ascii value",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/non-ascii.txt",
+ "metadata": {
+ "value": "café"
+ },
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/non-ascii.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-meta-value",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "café",
+ "café"
+ ]
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidMetadata"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidMetadataFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
}
},
{
- "at": "/value/entries/0/snapshot",
- "optional": true,
+ "at": "/status",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 400
}
},
{
- "at": "/value/entries/0/version",
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidMetadata"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "metadata"
+ }
+ },
+ {
+ "at": "/status",
"optional": true,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 400
}
},
{
- "at": "/value/entries/0/is_current_version",
+ "at": "/code",
"optional": true,
"rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "is": "equal",
+ "value": "InvalidMetadata"
}
+ }
+ ]
+ },
+ {
+ "id": "operations/azure-hns/put-metadata-non-ascii-value",
+ "profile": "azure-hns",
+ "lane": "core",
+ "purpose": "put metadata non ascii value",
+ "sources": [
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/non-ascii.txt",
+ "metadata": {
+ "value": "café"
},
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/1/key",
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/non-ascii.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-ms-meta-value",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "café",
+ "café"
+ ]
+ }
+ },
+ {
+ "at": "/headers/x-ms-blob-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "BlockBlob"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "x-ms-error-code": "InvalidMetadata"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "InvalidMetadataFixture error"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/z.txt"
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidMetadata"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "metadata"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidMetadata"
}
+ }
+ ]
+ },
+ {
+ "id": "operations/s3/put-metadata-non-ascii-value",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "A general-purpose bucket reads header bytes as ISO-8859-1 and decodes an RFC 2047 encoded word. Send é as the byte e9 or as an encoded word, or refuse the value if the client keeps metadata to ASCII; its UTF-8 bytes store café.",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/non-ascii.txt",
+ "metadata": {
+ "value": "café"
},
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/non-ascii.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-amz-meta-value",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "café|=\\?(?i:utf-8)\\?(?:(?i:q)\\?caf=(?i:c3)=(?i:a9)|(?i:b)\\?Y2Fmw6k=)\\?="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/1/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 2
+ "value": "ok"
}
},
{
- "at": "/value/entries/1/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-626f61720002\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/entries/1/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -103629,58 +142579,50 @@
""
]
}
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries",
+ "at": "/outcome",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 2
+ "is": "equal",
+ "value": "refused"
}
},
{
- "at": "/value/prefixes",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/continuation_token",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "metadata"
}
}
- ],
- "refusal": null
+ ]
},
{
- "id": "operations/s3/list-start-after-delimited",
+ "id": "operations/s3/put-metadata-value-edge-whitespace",
"profile": "s3",
"lane": "core",
- "purpose": "Send a start-after that names no key; it skips the keys and common prefixes up to it",
+ "purpose": "HTTP drops spaces and tabs at either end of a header value, so S3 would store a. An RFC 2047 encoded word stores them, but a read returns the value unencoded and loses them again. Send an encoded word, or refuse the value.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/board/",
- "start_after": "object-tests/board/b"
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/value-edge-whitespace.txt",
+ "metadata": {
+ "value": "\ta "
+ },
+ "op": "put"
},
"exchanges": [
{
@@ -103692,7 +142634,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -103700,7 +142642,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/metadata/value-edge-whitespace.txt"
}
},
{
@@ -103708,39 +142650,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/delimiter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
+ "value": "MQ=="
}
},
{
- "at": "/query/start-after",
+ "at": "/headers/x-amz-meta-value",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/board/b"
+ "is": "matches",
+ "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:09)a(?:_|=(?i:20))|(?i:b)\\?CWEg)\\?="
}
}
],
@@ -103751,19 +142669,96 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/21000/falseobject-tests/board/bobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARDobject-tests/board/nested/"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "metadata"
+ }
+ }
+ ]
+ },
+ {
+ "id": "operations/s3/put-metadata-value-encoded-word-text",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "A general-purpose bucket reads each space-separated token that starts with =? and ends with ?= as an RFC 2047 encoded word: it decodes it, or answers 400 or 500 when it cannot. So =?UTF-8?Q?caf=C3=A9?= sent as it is stores café. Wrapped in an encoded word of its own it stores the text, but a read returns it unencoded and decodes it again. Wrap it, or refuse it.",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/value-encoded-word-text.txt",
+ "metadata": {
+ "value": "=?UTF-8?Q?caf=C3=A9?="
+ },
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -103771,7 +142766,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -103779,7 +142774,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/metadata/value-encoded-word-text.txt"
}
},
{
@@ -103787,47 +142782,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/delimiter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/query/start-after",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/b"
+ "value": "MQ=="
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-meta-value",
"optional": false,
"rule": {
- "is": "equal",
- "value": "url"
+ "is": "matches",
+ "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:3d)=(?i:3f)UTF-8=(?i:3f)Q=(?i:3f)caf=(?i:3d)C3=(?i:3d)A9=(?i:3f)=(?i:3d)|(?i:b)\\?PT9VVEYtOD9RP2NhZj1DMz1BOT89)\\?="
}
}
],
@@ -103838,17 +142801,16 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/21000/urlfalseobject-tests/board/bobject-tests/board/z.txt2024-01-01T00:00:00.000Z"fixture-626f61720002"CRC64NVMEFULL_OBJECT2STANDARDobject-tests/board/nested/"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -103864,42 +142826,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/z.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/0/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-626f61720002\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/entries/0/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -103908,66 +142843,50 @@
""
]
}
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/prefixes/0",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/nested/"
+ "value": "refused"
}
},
{
- "at": "/value/prefixes",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 1
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/continuation_token",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "metadata"
}
}
- ],
- "refusal": null
+ ]
},
{
- "id": "operations/s3/list-truncated-without-token",
+ "id": "operations/s3/put-metadata-value-not-an-encoded-word",
"profile": "s3",
"lane": "core",
- "purpose": "Report an error when a truncated page carries no continuation token; do not stop early or list from the start again",
+ "purpose": "A general-purpose bucket reads each space-separated token that starts with =? and ends with ?= as an RFC 2047 encoded word: it decodes it, or answers 400 or 500 when it cannot. Neither a=?b?=c nor x=?UTF-8?Q?caf=C3=A9?=y is such a token, so S3 stores this value as it is sent, and a read returns it. Send it as it is, or wrapped in an encoded word; do not refuse it.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "constructed",
"call": {
- "op": "list",
- "page_size": 2,
- "prefix": "object-tests/board/"
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/value-not-an-encoded-word.txt",
+ "metadata": {
+ "value": "a=?b?=c x=?UTF-8?Q?caf=C3=A9?=y"
+ },
+ "op": "put"
},
"exchanges": [
{
@@ -103979,7 +142898,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -103987,7 +142906,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/metadata/value-not-an-encoded-word.txt"
}
},
{
@@ -103995,31 +142914,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "value": "MQ=="
}
},
{
- "at": "/query/max-keys",
+ "at": "/headers/x-amz-meta-value",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "matches",
+ "pattern": "a=\\?b\\?=c x=\\?UTF-8\\?Q\\?caf=C3=A9\\?=y|=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:3d)=(?i:3f)b=(?i:3f)=(?i:3d)c(?:_|=(?i:20))x=(?i:3d)=(?i:3f)UTF-8=(?i:3f)Q=(?i:3f)caf=(?i:3d)C3=(?i:3d)A9=(?i:3f)=(?i:3d)y|(?i:b)\\?YT0/Yj89YyB4PT9VVEYtOD9RP2NhZj1DMz1BOT89eQ==)\\?="
}
}
],
@@ -104030,19 +142933,71 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/22trueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-626f61720000"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-metadata-value-control-characters",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "A control character other than a tab is no valid HTTP field value. Send the value as an RFC 2047 encoded word, which S3 stores and a read decodes again, or refuse it.",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/value-control-characters.txt",
+ "metadata": {
+ "value": "a\u0000bc"
+ },
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -104050,7 +143005,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -104058,7 +143013,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/metadata/value-control-characters.txt"
}
},
{
@@ -104066,39 +143021,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "MQ=="
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-meta-value",
"optional": false,
"rule": {
- "is": "equal",
- "value": "url"
+ "is": "matches",
+ "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:00)b=(?i:7f)c|(?i:b)\\?YQBif2M=)\\?="
}
}
],
@@ -104109,17 +143040,16 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/22urltrueobject-tests/board/a.txt2024-01-01T00:00:00.000Z"fixture-626f61720000"CRC64NVMEFULL_OBJECT8STANDARDobject-tests/board/nested/c.txt2024-01-01T00:00:00.000Z"fixture-626f61720001"CRC64NVMEFULL_OBJECT1STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -104131,25 +143061,71 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "metadata"
+ }
+ }
+ ]
},
{
- "id": "operations/s3/list-encoding-ignored",
+ "id": "operations/s3/put-metadata-value-line-break",
"profile": "s3",
"lane": "core",
- "purpose": "Read the keys as sent when a service ignores encoding-type=url and the page has no EncodingType; a % that begins no escape is text, as in URL percent-decoding",
+ "purpose": "CR and LF are no valid HTTP field value, and a general-purpose bucket stores each as a space even inside an RFC 2047 encoded word. No request stores the value, so refuse it.",
"sources": [
- "https://github.com/rclone/rclone/tree/master/backend/s3/provider",
- "https://url.spec.whatwg.org/#percent-decode"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "constructed",
"call": {
- "op": "list_page",
- "prefix": "object-tests/percent/"
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/value-line-break.txt",
+ "metadata": {
+ "value": "a\r\nb"
+ },
+ "op": "put"
},
"exchanges": [
{
@@ -104161,7 +143137,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -104169,7 +143145,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/metadata/value-line-break.txt"
}
},
{
@@ -104177,23 +143153,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "MQ=="
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-meta-value",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/percent/"
+ "is": "matches",
+ "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:0d)=(?i:0a)b|(?i:b)\\?YQ0KYg==)\\?="
}
}
],
@@ -104204,19 +143172,77 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/percent/31000falseobject-tests/percent/%zz.txt2024-01-01T00:00:00.000Z"fixture-706572000000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/percent/100%-off.txt2024-01-01T00:00:00.000Z"fixture-706572000001"CRC64NVMEFULL_OBJECT2STANDARDobject-tests/percent/50%2024-01-01T00:00:00.000Z"fixture-706572000002"CRC64NVMEFULL_OBJECT3STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "metadata"
+ }
+ }
+ ]
+ },
+ {
+ "id": "operations/s3/put-metadata-value-with-tab",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "S3 stores a tab inside a value as it is sent. Send it raw, or inside an RFC 2047 encoded word.",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/value-with-tab.txt",
+ "metadata": {
+ "value": "a\tb"
+ },
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -104224,7 +143250,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -104232,7 +143258,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/fixture/object-tests/metadata/value-with-tab.txt"
}
},
{
@@ -104240,31 +143266,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/percent/"
+ "value": "MQ=="
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-meta-value",
"optional": false,
"rule": {
- "is": "equal",
- "value": "url"
+ "is": "matches",
+ "pattern": "a\tb|=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:09)b|(?i:b)\\?YQli)\\?="
}
}
],
@@ -104275,17 +143285,16 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/percent/31000falseobject-tests/percent/%zz.txt2024-01-01T00:00:00.000Z"fixture-706572000000"CRC64NVMEFULL_OBJECT1STANDARDobject-tests/percent/100%-off.txt2024-01-01T00:00:00.000Z"fixture-706572000001"CRC64NVMEFULL_OBJECT2STANDARDobject-tests/percent/50%2024-01-01T00:00:00.000Z"fixture-706572000002"CRC64NVMEFULL_OBJECT3STANDARD"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -104301,42 +143310,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/percent/%zz.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-706572000000\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/entries/0/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -104345,55 +143327,105 @@
""
]
}
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3/put-metadata-outside-latin-1",
+ "profile": "s3",
+ "lane": "core",
+ "purpose": "No header byte carries 雪, so send it as an RFC 2047 encoded word, or refuse the value if the client keeps metadata to ASCII. A general-purpose bucket stores its UTF-8 bytes as three ISO-8859-1 characters.",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/outside-latin-1.txt",
+ "metadata": {
+ "value": "雪"
},
+ "op": "put"
+ },
+ "exchanges": [
{
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/percent/100%-off.txt"
- }
- },
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/fixture/object-tests/metadata/outside-latin-1.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-amz-meta-value",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:e9)=(?i:9b)=(?i:aa)|(?i:b)\\?6Zuq)\\?="
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/1/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 2
+ "value": "ok"
}
},
{
- "at": "/value/entries/1/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-706572000001\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-6c30b210f0a8\""
}
},
{
- "at": "/value/entries/1/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -104402,114 +143434,47 @@
""
]
}
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/percent/50%"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 3
- }
- },
+ }
+ ],
+ "refusal": [
{
- "at": "/value/entries/2/etag",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-706572000002\""
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 3
+ "value": "refused"
}
},
{
- "at": "/value/prefixes",
+ "at": "/kind",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 0
+ "is": "matches",
+ "pattern": ".+"
}
},
{
- "at": "/value/continuation_token",
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "metadata"
}
}
- ],
- "refusal": null
+ ]
},
{
- "id": "operations/s3/put-bucket-missing",
- "profile": "s3",
+ "id": "operations/s3-express/abort-after-commit",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "put bucket missing",
+ "purpose": "abort after commit",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
- "key": "object.txt",
- "op": "put"
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.abort_multipart",
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -104521,7 +143486,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -104529,15 +143494,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "bm90aGluZyBpcyBzdG9yZWQ="
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -104546,91 +143534,80 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchBucketFixture error"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "NoSuchBucket"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-created-empty",
- "profile": "s3",
- "lane": "core",
- "purpose": "put created empty",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "",
- "key": "object-tests/write/empty.bin",
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
"request": [
{
- "at": "/method",
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/path",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/empty.bin"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -104639,12 +143616,11 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 204,
"headers": {
"date": {
"from": "now"
},
- "etag": "\"fixture-7d64e1430626\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
@@ -104664,41 +143640,22 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-7d64e1430626\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
}
],
"refusal": null
},
{
- "id": "operations/s3/put-created",
- "profile": "s3",
+ "id": "operations/s3-express/abort-unknown-upload",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "put created",
+ "purpose": "abort unknown upload",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.abort_multipart",
+ "upload_id": "fixture-upload+/4d0d5ccc4993="
},
"exchanges": [
{
@@ -104710,7 +143667,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -104718,15 +143675,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -104737,66 +143717,20 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-fbe0ab688a03\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-fbe0ab688a03\""
- }
},
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-created-key-question",
- "profile": "s3",
- "lane": "core",
- "purpose": "put created, with the key \"question?mark.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/question?mark.txt",
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -104806,7 +143740,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -104814,7 +143748,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/question?mark.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
@@ -104822,7 +143756,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/4d0d5ccc4993="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -104831,18 +143797,18 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-fbe0ab688a03\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nNoSuchUploadFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -104854,43 +143820,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-fbe0ab688a03\""
+ "value": 404
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "NoSuchUpload"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/put-created-key-hash",
- "profile": "s3",
+ "id": "operations/s3-express/abort",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "put created, with the key \"hash#tag.txt\"",
+ "purpose": "abort",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/hash#tag.txt",
- "op": "put"
+ "key": "object-tests/multipart/aborted.bin",
+ "op": "s3.abort_multipart",
+ "upload_id": "fixture-upload+/4bef2cd6d025="
},
"exchanges": [
{
@@ -104902,7 +143865,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -104910,15 +143873,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/hash#tag.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -104929,66 +143915,20 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-fbe0ab688a03\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-fbe0ab688a03\""
- }
},
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-created-key-percent",
- "profile": "s3",
- "lane": "core",
- "purpose": "put created, with the key \"percent%20.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/percent%20.txt",
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -104998,7 +143938,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "DELETE"
}
},
{
@@ -105006,7 +143946,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/percent%20.txt"
+ "value": "/object-tests/multipart/aborted.bin"
}
},
{
@@ -105014,7 +143954,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/4bef2cd6d025="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -105023,12 +143995,11 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 204,
"headers": {
"date": {
"from": "now"
},
- "etag": "\"fixture-fbe0ab688a03\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
@@ -105048,41 +144019,28 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-fbe0ab688a03\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
}
],
"refusal": null
},
{
- "id": "operations/s3/put-created-key-plus",
- "profile": "s3",
+ "id": "operations/s3-express/commit-after-abort",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "put created, with the key \"plus+plus.txt\"",
+ "purpose": "commit after abort",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/plus+plus.txt",
- "op": "put"
+ "key": "object-tests/multipart/aborted.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-db71b2c0257c\"",
+ "number": 1
+ }
+ ],
+ "upload_id": "fixture-upload+/4bef2cd6d025="
},
"exchanges": [
{
@@ -105094,7 +144052,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -105102,15 +144060,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/plus+plus.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -105121,66 +144102,20 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-fbe0ab688a03\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-fbe0ab688a03\""
- }
},
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-created-key-space",
- "profile": "s3",
- "lane": "core",
- "purpose": "put created, with the key \"space name.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/space name.txt",
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -105190,7 +144125,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -105198,15 +144133,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/space name.txt"
+ "value": "/object-tests/multipart/aborted.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-db71b2c0257c\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "fixture-upload+/4bef2cd6d025="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -105220,65 +144187,15 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-fbe0ab688a03\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "NoSuchUploadFixture error"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-fbe0ab688a03\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-created-key-non-ascii",
- "profile": "s3",
- "lane": "core",
- "purpose": "put created, with the key \"café/雪.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/café/雪.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -105286,7 +144203,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -105294,15 +144211,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/café/雪.txt"
+ "value": "/object-tests/multipart/aborted.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-db71b2c0257c\"1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "fixture-upload+/4bef2cd6d025="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -105316,13 +144265,13 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-fbe0ab688a03\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "NoSuchUploadFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -105334,43 +144283,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-fbe0ab688a03\""
+ "value": 200
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "NoSuchUpload"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/put-created-key-double-slash",
- "profile": "s3",
+ "id": "operations/s3-express/commit-lost-the-race-to-create",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "put created, with the key \"double//slash.txt\"",
+ "purpose": "commit lost the race to create",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/double//slash.txt",
- "op": "put"
+ "if_none_match": "*",
+ "key": "object-tests/multipart/guarded.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-201c9ed6f636\"",
+ "number": 1
+ }
+ ],
+ "upload_id": "fixture-upload+/c7be505aec65="
},
"exchanges": [
{
@@ -105382,7 +144335,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -105390,15 +144343,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/double//slash.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -105409,66 +144385,20 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-fbe0ab688a03\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-fbe0ab688a03\""
- }
},
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-created-key-trailing-slash",
- "profile": "s3",
- "lane": "core",
- "purpose": "put created, with the key \"trailing-slash/\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/trailing-slash/",
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -105478,7 +144408,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -105486,15 +144416,55 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/trailing-slash/"
+ "value": "/object-tests/multipart/guarded.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-201c9ed6f636\""
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "*"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/c7be505aec65="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -105508,65 +144478,15 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-fbe0ab688a03\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "PreconditionFailedFixture error"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-fbe0ab688a03\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/create-bucket-owned",
- "profile": "s3",
- "lane": "core",
- "purpose": "Refuse to create a bucket that the account already owns",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html"
- ],
- "call": {
- "bucket": "fixture",
- "location": "eu-central-1",
- "op": "s3.create_bucket"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -105574,7 +144494,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -105582,7 +144502,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture"
+ "value": "/object-tests/multipart/guarded.bin"
}
},
{
@@ -105590,7 +144510,47 @@
"optional": false,
"rule": {
"is": "xml",
- "value": "eu-central-1"
+ "value": "\"fixture-201c9ed6f636\"1"
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "*"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/c7be505aec65="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -105599,16 +144559,16 @@
],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nBucketAlreadyOwnedByYouFixture error"
+ "data": "PreconditionFailedFixture error"
},
"framing": "chunked"
}
@@ -105630,7 +144590,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 409
+ "value": 200
}
},
{
@@ -105638,24 +144598,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "BucketAlreadyOwnedByYou"
+ "value": "PreconditionFailed"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/create-bucket",
- "profile": "s3",
+ "id": "operations/s3-express/commit-nothing",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "Create a bucket in the region of the endpoint",
+ "purpose": "commit nothing",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "bucket": "object-tests-created",
- "location": "eu-central-1",
- "op": "s3.create_bucket"
+ "key": "object-tests/multipart/guarded.bin",
+ "op": "s3.complete_multipart",
+ "parts": [],
+ "upload_id": "fixture-upload+/c7be505aec65="
},
"exchanges": [
{
@@ -105663,27 +144624,132 @@
{
"request": [
{
- "at": "/method",
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/query/session",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/multipart/guarded.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "fixture-upload+/c7be505aec65="
}
},
{
- "at": "/path",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests-created"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/body_text",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "xml",
- "value": "eu-central-1"
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -105692,49 +144758,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "location": "/object-tests-created"
+ }
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "\nMalformedXMLFixture error"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/copy-missing-source",
- "profile": "s3",
- "lane": "core",
- "purpose": "Refuse a copy whose source does not exist",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
- ],
- "call": {
- "key": "object-tests/copy/target.txt",
- "op": "copy",
- "source_key": "object-tests/copy/absent.txt"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -105742,7 +144779,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -105750,23 +144787,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/copy/target.txt"
+ "value": "/object-tests/multipart/guarded.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-upload+/c7be505aec65="
}
},
{
- "at": "/headers/x-amz-copy-source",
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/absent\\.txt"
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -105775,7 +144836,7 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
@@ -105784,7 +144845,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchKeyFixture error"
+ "data": "\nMalformedXMLFixture error"
},
"framing": "chunked"
}
@@ -105796,7 +144857,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "POST"
}
},
{
@@ -105804,7 +144865,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/copy/absent.txt"
+ "value": "/object-tests/multipart/guarded.bin"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/c7be505aec65="
}
},
{
@@ -105814,6 +144883,30 @@
"is": "equal",
"value": ""
}
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
}
],
"allow_headers": [
@@ -105821,15 +144914,18 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 400,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
}
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "\nInvalidRequestYou must specify at least one part"
+ },
+ "framing": "chunked"
}
}
]
@@ -105849,7 +144945,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 400
}
},
{
@@ -105858,26 +144954,80 @@
"rule": {
"is": "one_of",
"values": [
- "NoSuchKey",
- ""
+ "MalformedXML",
+ "InvalidRequest"
]
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "parts"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "MalformedXML",
+ "InvalidRequest"
+ ]
+ }
+ }
+ ]
},
{
- "id": "operations/s3/copy",
- "profile": "s3",
+ "id": "operations/s3-express/commit-out-of-order",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "Copy an object to another key in the same bucket",
+ "purpose": "commit out of order",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/copy/target.txt",
- "op": "copy",
- "source_key": "object-tests/copy/source.txt"
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-ec2738a0b15a\"",
+ "number": 2
+ },
+ {
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "number": 1
+ }
+ ],
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -105889,7 +145039,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -105897,11 +145047,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/copy/target.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -105909,11 +145059,26 @@
}
},
{
- "at": "/headers/x-amz-copy-source",
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -105924,17 +145089,22 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
- },
+ }
+ ]
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -105942,7 +145112,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "POST"
}
},
{
@@ -105950,170 +145120,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/copy/source.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "2\"fixture-ec2738a0b15a\"1\"fixture-9aff617fcdf8\""
}
- }
- ],
- "then": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/copy/target.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-amz-copy-source",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
- }
- }
- }
- ]
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-length": "5",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "empty"
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-etag\""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/copy-200-internal-error",
- "profile": "s3",
- "lane": "core",
- "purpose": "Report a copy answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
- "sources": [
- "https://repost.aws/knowledge-center/s3-resolve-200-internalerror",
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html",
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html"
- ],
- "origin": "transient",
- "call": {
- "key": "object-tests/copy/target.txt",
- "op": "copy",
- "source_key": "object-tests/copy/source.txt"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/path",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/copy/target.txt"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-copy-source",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -106122,7 +145169,7 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
@@ -106131,7 +145178,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ "data": "\nInvalidPartOrderFixture error"
},
"framing": "chunked"
}
@@ -106143,7 +145190,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "POST"
}
},
{
@@ -106151,133 +145198,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/copy/source.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "\"fixture-ec2738a0b15a\"2\"fixture-9aff617fcdf8\"1"
}
- }
- ],
- "then": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/fixture/object-tests/copy/target.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-amz-copy-source",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
- }
- }
- ]
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-length": "5",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "empty"
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/path",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/copy/target.txt"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-copy-source",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -106286,7 +145247,7 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
@@ -106295,14 +145256,107 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ "data": "\nInvalidPartOrderFixture error"
},
"framing": "chunked"
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidPartOrder"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "parts"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
},
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidPartOrder"
+ }
+ }
+ ]
+ },
+ {
+ "id": "operations/s3-express/commit-part-too-small",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "commit part too small",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/small.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-132cb4a5de9d\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-2cab82eb728e\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/09837ae2020c="
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -106312,7 +145366,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -106320,11 +145374,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/copy/target.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -106332,11 +145386,26 @@
}
},
{
- "at": "/headers/x-amz-copy-source",
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -106347,20 +145416,19 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
- ],
- "optional": true
+ ]
},
{
"alternatives": [
@@ -106371,7 +145439,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -106379,82 +145447,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/copy/target.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "value": "/object-tests/multipart/small.bin"
}
},
{
- "at": "/headers/x-amz-copy-source",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
+ "is": "xml",
+ "value": "1\"fixture-132cb4a5de9d\"2\"fixture-2cab82eb728e\""
}
},
- "body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
- }
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "fixture-upload+/09837ae2020c="
}
},
{
- "at": "/path",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/copy/target.txt"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-copy-source",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -106465,23 +145498,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ "data": "EntityTooSmallFixture error"
},
"framing": "chunked"
}
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -106489,7 +145517,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -106497,23 +145525,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/copy/target.txt"
+ "value": "/object-tests/multipart/small.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-132cb4a5de9d\"1\"fixture-2cab82eb728e\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-upload+/09837ae2020c="
}
},
{
- "at": "/headers/x-amz-copy-source",
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -106524,20 +145576,19 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ "data": "EntityTooSmallFixture error"
},
"framing": "chunked"
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -106549,30 +145600,44 @@
"value": "error"
}
},
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 200
+ }
+ },
{
"at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "InternalError"
+ "value": "EntityTooSmall"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/put-with-unknown-storage-class",
- "profile": "s3",
+ "id": "operations/s3-express/commit-precondition-failed",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "Refuse a storage class that S3 does not have",
+ "purpose": "commit precondition failed",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "Zmlyc3Q=",
- "key": "object-tests/classes/object.txt",
- "op": "put",
- "storage_class": "WARM"
+ "if_match": "\"fixture-db71b2c0257c\"",
+ "key": "object-tests/multipart/guarded.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-201c9ed6f636\"",
+ "number": 1
+ }
+ ],
+ "upload_id": "fixture-upload+/c7be505aec65="
},
"exchanges": [
{
@@ -106584,7 +145649,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -106592,23 +145657,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/classes/object.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "Zmlyc3Q="
+ "value": ""
}
},
{
- "at": "/headers/x-amz-storage-class",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "WARM"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -106617,100 +145697,174 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidStorageClassFixture error"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
},
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidStorageClass"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-with-storage-class",
- "profile": "s3",
- "lane": "core",
- "purpose": "Write an object into the STANDARD_IA storage class",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
- ],
- "call": {
- "body_base64": "Zmlyc3Q=",
- "key": "object-tests/classes/object.txt",
- "op": "put",
- "storage_class": "STANDARD_IA"
- },
- "exchanges": [
{
"alternatives": [
{
"request": [
{
- "at": "/method",
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/multipart/guarded.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-201c9ed6f636\""
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-db71b2c0257c\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/c7be505aec65="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "PreconditionFailedFixture error"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/multipart/guarded.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-201c9ed6f636\"1"
+ }
+ },
+ {
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "\"fixture-db71b2c0257c\""
}
},
{
- "at": "/path",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/classes/object.txt"
+ "value": "fixture-upload+/c7be505aec65="
}
},
{
- "at": "/body_base64",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "Zmlyc3Q="
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/headers/x-amz-storage-class",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "STANDARD_IA"
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -106724,12 +145878,13 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "PreconditionFailedFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -106741,28 +145896,46 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 200
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PreconditionFailed"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/put-with-md5",
- "profile": "s3",
+ "id": "operations/s3-express/commit-single-small-part",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "Carry a declared transactional MD5 without substituting a payload or stored-property hash.",
+ "purpose": "commit single small part",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "aGVsbG8=",
- "checksum": {
- "algorithm": "md5",
- "value_base64": "XUFAKrxLKna5cZ2REBfFkg=="
- },
- "key": "object",
- "op": "put"
+ "key": "object-tests/multipart/single.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-db1e44387ca0\"",
+ "number": 1
+ }
+ ],
+ "upload_id": "fixture-upload+/b39780854a14="
},
"exchanges": [
{
@@ -106774,7 +145947,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -106782,23 +145955,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": ""
}
},
{
- "at": "/headers/content-md5",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "XUFAKrxLKna5cZ2REBfFkg=="
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -106809,53 +145997,20 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-md5-mismatch",
- "profile": "s3",
- "lane": "core",
- "purpose": "Declared transactional MD5 must cover the exact body bytes; report service rejection of a mismatch.",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
- ],
- "call": {
- "body_base64": "aGVsbG8=",
- "checksum": {
- "algorithm": "md5",
- "value_base64": "K9opmNmw7hl9oUKgRH9nJQ=="
},
- "key": "object",
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -106865,7 +146020,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -106873,23 +146028,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object"
+ "value": "/object-tests/multipart/single.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-db1e44387ca0\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": "fixture-upload+/b39780854a14="
}
},
{
- "at": "/headers/content-md5",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "K9opmNmw7hl9oUKgRH9nJQ=="
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -106898,66 +146077,20 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nBadDigestMD5 mismatch"
+ "data": "https://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT"
},
"framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "BadDigest"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-with-crc32",
- "profile": "s3",
- "lane": "core",
- "purpose": "Send an additional checksum in its x-amz-checksum- header; S3 stores it as the object's one checksum, in place of the CRC64NVME it adds to a write without one",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
- ],
- "call": {
- "body_base64": "Y2hlY2tzdW0K",
- "checksum": {
- "algorithm": "crc32",
- "value_base64": "ItMTFg=="
- },
- "key": "object-tests/checksums/crc32.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -106965,7 +146098,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -106973,31 +146106,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/checksums/crc32.txt"
+ "value": "/object-tests/multipart/single.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-db1e44387ca0\"1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "Y2hlY2tzdW0K"
+ "value": "fixture-upload+/b39780854a14="
}
},
{
- "at": "/headers/x-amz-checksum-crc32",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "ItMTFg=="
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/headers/x-amz-sdk-checksum-algorithm",
- "optional": true,
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
"rule": {
"is": "equal",
- "value": "CRC32"
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -107011,14 +146160,13 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-636b73750000\"",
- "x-amz-checksum-crc32": "ItMTFg==",
- "x-amz-checksum-type": "FULL_OBJECT"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -107038,7 +146186,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-636b73750000\""
+ "value": "\"fixture-0841fa5d9c5c\""
}
},
{
@@ -107056,27 +146204,24 @@
"refusal": null
},
{
- "id": "operations/s3/put-two-checksums",
- "profile": "s3",
+ "id": "operations/s3-express/commit-object-size-mismatch",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "Report S3's refusal of a write with two additional checksums; S3 keeps one checksum per object and answers 400 InvalidRequest to more than one x-amz-checksum- header",
+ "purpose": "Report S3's refusal of a completion whose parts do not add up to the object size stated in x-amz-mp-object-size",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "Y2hlY2tzdW0K",
- "checksums": [
- {
- "algorithm": "crc32",
- "value_base64": "ItMTFg=="
- },
+ "key": "object-tests/multipart/commit-object-size-mismatch.bin",
+ "object_size": 4,
+ "op": "s3.complete_multipart",
+ "parts": [
{
- "algorithm": "sha256",
- "value_base64": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I="
+ "etag": "\"fixture-db1e44387ca0\"",
+ "number": 1
}
],
- "key": "object-tests/checksums/two.txt",
- "op": "put"
+ "upload_id": "fixture-upload+/b39780854a14="
},
"exchanges": [
{
@@ -107088,7 +146233,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -107096,42 +146241,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/checksums/two.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "Y2hlY2tzdW0K"
+ "value": ""
}
},
{
- "at": "/headers/x-amz-checksum-crc32",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "ItMTFg=="
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/headers/x-amz-checksum-sha256",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I="
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/x-amz-sdk-checksum-algorithm",
- "optional": true,
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "CRC32",
- "SHA256"
- ]
+ "is": "absent"
}
}
],
@@ -107140,109 +146281,22 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidRequestExpecting a single x-amz-checksum- header. Multiple checksum Types are not allowed.fixturefixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidRequest"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "checksums"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
- }
},
- {
- "at": "/code",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": "InvalidRequest"
- }
- }
- ]
- },
- {
- "id": "operations/s3/put-with-tags",
- "profile": "s3",
- "lane": "core",
- "purpose": "Write an object with tags",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
- ],
- "call": {
- "body_base64": "Zmlyc3Q=",
- "key": "object-tests/tags/object.txt",
- "op": "put",
- "tags": {
- "project": "object-tests"
- }
- },
- "exchanges": [
{
"alternatives": [
{
@@ -107252,7 +146306,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -107260,23 +146314,55 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/tags/object.txt"
+ "value": "/object-tests/multipart/commit-object-size-mismatch.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-db1e44387ca0\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "Zmlyc3Q="
+ "value": "fixture-upload+/b39780854a14="
}
},
{
- "at": "/headers/x-amz-tagging",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "project=object-tests"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-mp-object-size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "4"
}
}
],
@@ -107287,47 +146373,18 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/get-tagging",
- "profile": "s3",
- "lane": "core",
- "purpose": "Read the tags of an object",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html"
- ],
- "call": {
- "key": "object-tests/tags/object.txt",
- "op": "s3.get_tagging"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -107335,7 +146392,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -107343,23 +146400,55 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/tags/object.txt"
+ "value": "/object-tests/multipart/commit-object-size-mismatch.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-db1e44387ca0\"1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-upload+/b39780854a14="
}
},
{
- "at": "/query/tagging",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-mp-object-size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "4"
}
}
],
@@ -107377,7 +146466,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nprojectobject-tests"
+ "data": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture"
},
"framing": "chunked"
}
@@ -107391,36 +146480,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/tags",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "project": "object-tests"
- }
+ "value": 200
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidRequest"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/put-tagging",
- "profile": "s3",
+ "id": "operations/s3-express/commit-object-size",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "Replace the tags of an object",
+ "purpose": "Send the object size the caller expects in x-amz-mp-object-size; a completion whose parts add up to it succeeds",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/tags/object.txt",
- "op": "s3.put_tagging",
- "tags": {
- "project": "object-tests"
- }
+ "key": "object-tests/multipart/commit-object-size.bin",
+ "object_size": 3,
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-db1e44387ca0\"",
+ "number": 1
+ }
+ ],
+ "upload_id": "fixture-upload+/b39780854a14="
},
"exchanges": [
{
@@ -107432,7 +146532,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -107440,31 +146540,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/tags/object.txt"
+ "value": "/"
}
},
{
- "at": "/body_text",
+ "at": "/query/session",
"optional": false,
"rule": {
- "is": "xml",
- "value": "projectobject-tests"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/tagging",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/headers/x-amz-checksum-crc64nvme",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "[A-Za-z0-9+/]{11}="
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -107475,45 +146582,20 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
- "encoding": "empty"
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-internal-error",
- "profile": "s3",
- "lane": "core",
- "purpose": "Report a 500 InternalError answer as an error, after at most 5 retries",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
- ],
- "origin": "transient",
- "call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/write/object.txt",
- "op": "put"
- },
- "exchanges": [
+ },
{
"alternatives": [
{
@@ -107523,7 +146605,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -107531,65 +146613,55 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/object-tests/multipart/commit-object-size.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 500,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
+ "is": "xml",
+ "value": "1\"fixture-db1e44387ca0\""
}
},
- "body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/b39780854a14="
+ }
},
- "framing": "chunked"
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/path",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "fixture-session-token"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-mp-object-size",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "3"
}
}
],
@@ -107598,25 +146670,20 @@
],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ "data": "https://fixture.invalid/fixture/object-tests/multipart/commit-object-size.binfixtureobject-tests/multipart/commit-object-size.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT"
},
"framing": "chunked"
}
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -107624,7 +146691,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -107632,66 +146699,55 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/object-tests/multipart/commit-object-size.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 500,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
+ "is": "xml",
+ "value": "\"fixture-db1e44387ca0\"1"
}
},
- "body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/b39780854a14="
+ }
},
- "framing": "chunked"
- }
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/path",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "fixture-session-token"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-mp-object-size",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "3"
}
}
],
@@ -107700,23 +146756,74 @@
],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ "data": "https://fixture.invalid/fixture/object-tests/multipart/commit-object-size.binfixtureobject-tests/multipart/commit-object-size.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT"
},
"framing": "chunked"
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-0841fa5d9c5c\""
+ }
},
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/commit-one-empty-part",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Complete an upload of one empty part, which writes an empty object; a client that refuses a completion of no parts writes an empty object this way",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/multipart/empty.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-db1e44387ca0\"",
+ "number": 1
+ }
+ ],
+ "upload_id": "fixture-upload+/b39780854a14="
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -107726,7 +146833,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -107734,15 +146841,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -107751,22 +146881,21 @@
],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
- ],
- "optional": true
+ ]
},
{
"alternatives": [
@@ -107777,7 +146906,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -107785,86 +146914,69 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/object-tests/multipart/empty.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-db1e44387ca0\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "fixture-upload+/b39780854a14="
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 500,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
- "body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
},
- "framing": "chunked"
- }
- }
- ],
- "optional": true
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 500
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InternalError"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-content-encoding-gzip",
- "profile": "s3",
- "lane": "core",
- "purpose": "Store Content-Encoding: gzip with a write, and the gzip bytes unchanged",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA",
- "content_encoding": "gzip",
- "key": "object-tests/write/object.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT"
+ },
+ "framing": "chunked"
+ }
+ },
{
"request": [
{
@@ -107872,7 +146984,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -107880,23 +146992,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/object-tests/multipart/empty.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-db1e44387ca0\"1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ "value": "fixture-upload+/b39780854a14="
}
},
{
- "at": "/headers/content-encoding",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "gzip"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -107910,13 +147046,13 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-fbe0ab688a03\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -107936,7 +147072,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-fbe0ab688a03\""
+ "value": "\"fixture-0841fa5d9c5c\""
}
},
{
@@ -107954,21 +147090,23 @@
"refusal": null
},
{
- "id": "operations/s3/put-content-properties",
- "profile": "s3",
+ "id": "operations/s3-express/commit-subset",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write",
+ "purpose": "commit subset",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "cache_control": "max-age=3600",
- "content_disposition": "attachment; filename=\"report.txt\"",
- "content_language": "nl-NL",
- "content_type": "text/plain; charset=utf-8",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object-tests/multipart/replaced.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-09ac5e35935f\"",
+ "number": 1
+ }
+ ],
+ "upload_id": "fixture-upload+/3cc68ed16e61="
},
"exchanges": [
{
@@ -107980,7 +147118,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -107988,47 +147126,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "/"
}
},
{
- "at": "/headers/content-type",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "text/plain; charset=utf-8"
+ "value": ""
}
},
{
- "at": "/headers/content-language",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "nl-NL"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/headers/content-disposition",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "attachment; filename=\"report.txt\""
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/cache-control",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "max-age=3600"
+ "is": "absent"
}
}
],
@@ -108039,67 +147168,20 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-fbe0ab688a03\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-fbe0ab688a03\""
- }
},
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-if-match-current",
- "profile": "s3",
- "lane": "core",
- "purpose": "put if match current",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "cmVwbGFjZWQ=",
- "if_match": "\"fixture-fbe0ab688a03\"",
- "key": "object-tests/write/object.txt",
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -108109,7 +147191,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -108117,23 +147199,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/object-tests/multipart/replaced.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-09ac5e35935f\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "cmVwbGFjZWQ="
+ "value": "fixture-upload+/3cc68ed16e61="
}
},
{
- "at": "/headers/if-match",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-fbe0ab688a03\""
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -108147,66 +147253,15 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-01da46aa1994\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin\"fixture-eef5a071f9f6\"DZyVHeSVZ7c=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-01da46aa1994\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-if-none-match-missing",
- "profile": "s3",
- "lane": "core",
- "purpose": "put if none match missing",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "ZnJlc2g=",
- "if_none_match": "*",
- "key": "object-tests/write/fresh.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -108214,7 +147269,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -108222,23 +147277,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/fresh.txt"
+ "value": "/object-tests/multipart/replaced.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-09ac5e35935f\"1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "ZnJlc2g="
+ "value": "fixture-upload+/3cc68ed16e61="
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "*"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -108252,13 +147331,13 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-891ed8521bb8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin\"fixture-eef5a071f9f6\"DZyVHeSVZ7c=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -108278,7 +147357,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-891ed8521bb8\""
+ "value": "\"fixture-eef5a071f9f6\""
}
},
{
@@ -108296,17 +147375,27 @@
"refusal": null
},
{
- "id": "operations/s3/put-key-1024",
- "profile": "s3",
+ "id": "operations/s3-express/commit-unstaged-part",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "put key 1024",
+ "purpose": "commit unstaged part",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
- "op": "put"
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-db71b2c0257c\"",
+ "number": 3
+ }
+ ],
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -108318,7 +147407,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -108326,15 +147415,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -108345,66 +147457,20 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
},
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-key-1025",
- "profile": "s3",
- "lane": "core",
- "purpose": "put key 1025",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -108414,7 +147480,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -108422,15 +147488,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"3\"fixture-db71b2c0257c\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "fixture-upload+/c60fb1e2e00d="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -108448,100 +147546,11 @@
},
"body": {
"encoding": "utf8",
- "data": "\nKeyTooLongErrorFixture error"
+ "data": "\nInvalidPartOrderFixture error"
},
"framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "KeyTooLongError"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "key"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": "KeyTooLongError"
- }
- }
- ]
- },
- {
- "id": "operations/s3/put-lost-the-race-to-create",
- "profile": "s3",
- "lane": "core",
- "purpose": "put lost the race to create",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "YW5vdGhlciBvYmplY3Q=",
- "if_none_match": "*",
- "key": "object-tests/write/object.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -108549,7 +147558,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -108557,23 +147566,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-db71b2c0257c\"3"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "*"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -108582,7 +147615,7 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
@@ -108591,7 +147624,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
+ "data": "\nInvalidPartOrderFixture error"
},
"framing": "chunked"
}
@@ -108613,7 +147646,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": 400
}
},
{
@@ -108621,26 +147654,34 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PreconditionFailed"
+ "value": "InvalidPartOrder"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/put-conditional-conflict",
- "profile": "s3",
+ "id": "operations/s3-express/commit-wrong-etag",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "Report a 409 ConditionalRequestConflict to a conditional put as an error. AWS advises retrying a put, so a client may retry up to 5 times first, and need not retry",
+ "purpose": "commit wrong etag",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "transient",
"call": {
- "body_base64": "YW5vdGhlciBvYmplY3Q=",
- "if_none_match": "*",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-db71b2c0257c\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-ec2738a0b15a\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -108652,7 +147693,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -108660,81 +147701,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
- }
- },
- {
- "at": "/headers/if-none-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "*"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 409,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
+ "value": "/"
}
},
- "body": {
- "encoding": "utf8",
- "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
- },
- "framing": "chunked"
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": ""
}
},
{
- "at": "/path",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "*"
+ "is": "absent"
}
}
],
@@ -108743,22 +147741,21 @@
],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
- ],
- "optional": true
+ ]
},
{
"alternatives": [
@@ -108769,7 +147766,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -108777,82 +147774,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "*"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 409,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
+ "is": "xml",
+ "value": "1\"fixture-db71b2c0257c\"2\"fixture-ec2738a0b15a\""
}
},
- "body": {
- "encoding": "utf8",
- "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
- },
- "framing": "chunked"
- }
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/path",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "*"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -108861,25 +147823,20 @@
],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
+ "data": "InvalidPartFixture error"
},
"framing": "chunked"
}
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -108887,7 +147844,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -108895,82 +147852,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": "*"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 409,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
+ "is": "xml",
+ "value": "\"fixture-db71b2c0257c\"1\"fixture-ec2738a0b15a\"2"
}
},
- "body": {
- "encoding": "utf8",
- "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
- },
- "framing": "chunked"
- }
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/path",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "*"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -108979,22 +147901,21 @@
],
"allow_query": [],
"response": {
- "status": 409,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nConditionalRequestConflictA conflicting operation occurred. If using PutObject you can retry the request. If using multipart upload you should initiate another CreateMultipartUpload request and re-upload each part.fixturefixture"
+ "data": "InvalidPartFixture error"
},
"framing": "chunked"
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -109011,7 +147932,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 409
+ "value": 200
}
},
{
@@ -109019,27 +147940,34 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ConditionalRequestConflict"
+ "value": "InvalidPart"
}
}
],
"refusal": null
},
{
- "id": "operations/s3/put-metadata-empty-value",
- "profile": "s3",
+ "id": "operations/s3-express/commit",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "put metadata empty value",
+ "purpose": "commit",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/empty-value.txt",
- "metadata": {
- "empty": ""
- },
- "op": "put"
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-ec2738a0b15a\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -109051,7 +147979,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -109059,23 +147987,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/empty-value.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": ""
}
},
{
- "at": "/headers/x-amz-meta-empty",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -109086,69 +148029,20 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-metadata-hyphen-name",
- "profile": "s3",
- "lane": "core",
- "purpose": "put metadata hyphen name",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/hyphen-name.txt",
- "metadata": {
- "not-valid": "1"
},
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -109158,31 +148052,55 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/path",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/hyphen-name.txt"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-meta-not-valid",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "1"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -109196,69 +148114,15 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-metadata-names-differ-in-case",
- "profile": "s3",
- "lane": "core",
- "purpose": "S3 matches a metadata name without case. A general-purpose bucket merges two names that differ only in case into one pair, dup: one,two, which does not read back as sent, so refuse the call.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/names-differ-in-case.txt",
- "metadata": {
- "DUP": "two",
- "dup": "one"
- },
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -109266,7 +148130,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -109274,145 +148138,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/names-differ-in-case.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MQ=="
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/headers/x-amz-meta-dup",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "one_of",
- "values": [
- [
- "one",
- "two"
- ],
- [
- "two",
- "one"
- ]
- ]
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "metadata"
- }
- }
- ]
- },
- {
- "id": "operations/s3/put-metadata-punctuation-name",
- "profile": "s3",
- "lane": "core",
- "purpose": "S3 stores a name that holds any character of an HTTP token, and one that starts with a digit.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/punctuation-name.txt",
- "metadata": {
- "1a!#$%&'*+.^_`|~b": "1"
- },
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/path",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/punctuation-name.txt"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/body_base64",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-meta-1a!#$%&'*+.^_`|~0b",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "1"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -109426,13 +148192,13 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -109452,7 +148218,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
+ "value": "\"fixture-ec4f3b9bcac2\""
}
},
{
@@ -109470,17 +148236,27 @@
"refusal": null
},
{
- "id": "operations/s3/put-metadata-replaced",
- "profile": "s3",
+ "id": "operations/s3-express/commit-key-question",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "put metadata replaced",
+ "purpose": "commit, with the key \"question?mark.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "Mg==",
- "key": "object-tests/metadata/replaced.txt",
- "op": "put"
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-ec2738a0b15a\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -109492,7 +148268,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -109500,15 +148276,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/replaced.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "Mg=="
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -109519,70 +148318,20 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-ea4c238956b1\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ea4c238956b1\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-metadata",
- "profile": "s3",
- "lane": "core",
- "purpose": "put metadata",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/object.txt",
- "metadata": {
- "name": "value",
- "second": "2"
},
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -109592,7 +148341,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -109600,31 +148349,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/object.txt"
+ "value": "/object-tests/keys/question?mark.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/headers/x-amz-meta-name",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "value"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/headers/x-amz-meta-second",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -109638,65 +148403,15 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-overwrite",
- "profile": "s3",
- "lane": "core",
- "purpose": "put overwrite",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "b3ZlcndyaXR0ZW4=",
- "key": "object-tests/write/object.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -109704,7 +148419,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -109712,15 +148427,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/object-tests/keys/question?mark.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "b3ZlcndyaXR0ZW4="
+ "value": "fixture-upload+/c60fb1e2e00d="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -109734,13 +148481,13 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-a62b555324ac\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -109760,7 +148507,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-a62b555324ac\""
+ "value": "\"fixture-ec4f3b9bcac2\""
}
},
{
@@ -109778,18 +148525,27 @@
"refusal": null
},
{
- "id": "operations/s3/put-precondition-failed",
- "profile": "s3",
+ "id": "operations/s3-express/commit-key-hash",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "put precondition failed",
+ "purpose": "commit, with the key \"hash#tag.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "YW5vdGhlciBvYmplY3Q=",
- "if_match": "\"fixture-db71b2c0257c\"",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-ec2738a0b15a\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -109801,7 +148557,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -109809,23 +148565,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
+ "value": ""
}
},
{
- "at": "/headers/if-match",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-db71b2c0257c\""
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -109834,65 +148605,22 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PreconditionFailed"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-unauthenticated",
- "profile": "s3",
- "lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "bm90aGluZyBpcyBzdG9yZWQ=",
- "key": "object-tests/write/object.txt",
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -109902,7 +148630,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -109910,15 +148638,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/write/object.txt"
+ "value": "/object-tests/keys/hash#tag.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "bm90aGluZyBpcyBzdG9yZWQ="
+ "value": "fixture-upload+/c60fb1e2e00d="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -109927,69 +148687,20 @@
],
"allow_query": [],
"response": {
- "status": 403,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidAccessKeyIdFixture error"
+ "data": "https://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
},
"framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 403
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidAccessKeyId"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/stage-after-abort",
- "profile": "s3",
- "lane": "core",
- "purpose": "stage after abort",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "eA==",
- "key": "object-tests/multipart/aborted.bin",
- "op": "s3.upload_part",
- "part_number": 2,
- "upload_id": "fixture-upload+/f85cf0cd3a3f="
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -109997,7 +148708,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -110005,31 +148716,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/aborted.bin"
+ "value": "/object-tests/keys/hash#tag.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "eA=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/f85cf0cd3a3f="
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -110038,16 +148765,16 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchUploadFixture error"
+ "data": "https://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
},
"framing": "chunked"
}
@@ -110061,42 +148788,53 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": "\"fixture-ec4f3b9bcac2\""
}
},
{
- "at": "/code",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "NoSuchUpload"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3/stage-last",
- "profile": "s3",
+ "id": "operations/s3-express/commit-key-percent",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "stage last",
+ "purpose": "commit, with the key \"percent%20.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "c2Vjb25k",
- "key": "object-tests/multipart/object.bin",
- "op": "s3.upload_part",
- "part_number": 2,
- "upload_id": "fixture-upload+/276ca18046f9="
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-ec2738a0b15a\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -110108,7 +148846,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -110116,31 +148854,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
+ "value": ""
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -110151,57 +148896,20 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-32b70ae425ac\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
},
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-32b70ae425ac\""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/stage-part-10000",
- "profile": "s3",
- "lane": "core",
- "purpose": "Part numbers run from 1 to 10,000. Stage part 10,000; only 0 and 10,001 may be refused.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "c2Vjb25k",
- "key": "object-tests/multipart/object.bin",
- "op": "s3.upload_part",
- "part_number": 10000,
- "upload_id": "fixture-upload+/276ca18046f9="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -110211,7 +148919,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -110219,31 +148927,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/object-tests/keys/percent%20.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "10000"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -110257,56 +148981,15 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-32b70ae425ac\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-32b70ae425ac\""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/stage-part-10001",
- "profile": "s3",
- "lane": "core",
- "purpose": "stage part 10001",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "eA==",
- "key": "object-tests/multipart/object.bin",
- "op": "s3.upload_part",
- "part_number": 10001,
- "upload_id": "fixture-upload+/276ca18046f9="
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -110314,7 +148997,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -110322,31 +149005,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/object-tests/keys/percent%20.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "eA=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "10001"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -110355,16 +149054,16 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidArgumentFixture error"
+ "data": "https://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
},
"framing": "chunked"
}
@@ -110378,83 +149077,53 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidArgument"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
+ "value": "ok"
}
},
{
- "at": "/parameter",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "part_number"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
+ "value": "\"fixture-ec4f3b9bcac2\""
}
},
{
- "at": "/code",
+ "at": "/value/version",
"optional": true,
"rule": {
- "is": "equal",
- "value": "InvalidArgument"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
- ]
+ ],
+ "refusal": null
},
{
- "id": "operations/s3/stage-part-zero",
- "profile": "s3",
+ "id": "operations/s3-express/commit-key-plus",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "stage part zero",
+ "purpose": "commit, with the key \"plus+plus.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "eA==",
- "key": "object-tests/multipart/object.bin",
- "op": "s3.upload_part",
- "part_number": 0,
- "upload_id": "fixture-upload+/276ca18046f9="
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-ec2738a0b15a\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -110466,7 +149135,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -110474,31 +149143,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "eA=="
+ "value": ""
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "0"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -110507,108 +149183,22 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidArgumentFixture error"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidArgument"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "part_number"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
- }
},
- {
- "at": "/code",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": "InvalidArgument"
- }
- }
- ]
- },
- {
- "id": "operations/s3/stage-unknown-upload",
- "profile": "s3",
- "lane": "core",
- "purpose": "stage unknown upload",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "eA==",
- "key": "object-tests/multipart/object.bin",
- "op": "s3.upload_part",
- "part_number": 1,
- "upload_id": "fixture-upload+/4d0d5ccc4993="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -110618,7 +149208,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -110626,31 +149216,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/object-tests/keys/plus+plus.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "eA=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/4d0d5ccc4993="
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -110659,16 +149265,94 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/keys/plus+plus.txt"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/c60fb1e2e00d="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchUploadFixture error"
+ "data": "https://fixture.invalid/fixture/object-tests/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
},
"framing": "chunked"
}
@@ -110682,42 +149366,53 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": "\"fixture-ec4f3b9bcac2\""
}
},
{
- "at": "/code",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "NoSuchUpload"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3/stage",
- "profile": "s3",
+ "id": "operations/s3-express/commit-key-space",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "stage",
+ "purpose": "commit, with the key \"space name.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "cGFydA==",
- "key": "object-tests/multipart/object.bin",
- "op": "s3.upload_part",
- "part_number": 1,
- "upload_id": "fixture-upload+/276ca18046f9="
+ "key": "object-tests/keys/space name.txt",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-ec2738a0b15a\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -110729,7 +149424,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -110737,31 +149432,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "cGFydA=="
+ "value": ""
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -110772,57 +149474,20 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-6d60d5bbaa47\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
},
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6d60d5bbaa47\""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/stage-key-question",
- "profile": "s3",
- "lane": "core",
- "purpose": "stage, with the key \"question?mark.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "cGFydA==",
- "key": "object-tests/keys/question?mark.txt",
- "op": "s3.upload_part",
- "part_number": 1,
- "upload_id": "fixture-upload+/276ca18046f9="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -110832,7 +149497,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -110840,31 +149505,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/question?mark.txt"
+ "value": "/object-tests/keys/space name.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "cGFydA=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -110878,56 +149559,15 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-6d60d5bbaa47\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/keys/space name.txtfixtureobject-tests/keys/space name.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6d60d5bbaa47\""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/stage-key-hash",
- "profile": "s3",
- "lane": "core",
- "purpose": "stage, with the key \"hash#tag.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "cGFydA==",
- "key": "object-tests/keys/hash#tag.txt",
- "op": "s3.upload_part",
- "part_number": 1,
- "upload_id": "fixture-upload+/276ca18046f9="
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -110935,7 +149575,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -110943,31 +149583,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/hash#tag.txt"
+ "value": "/object-tests/keys/space name.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "cGFydA=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -110981,13 +149637,13 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-6d60d5bbaa47\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/keys/space name.txtfixtureobject-tests/keys/space name.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -111007,26 +149663,45 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6d60d5bbaa47\""
+ "value": "\"fixture-ec4f3b9bcac2\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3/stage-key-percent",
- "profile": "s3",
+ "id": "operations/s3-express/commit-key-non-ascii",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "stage, with the key \"percent%20.txt\"",
+ "purpose": "commit, with the key \"café/雪.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "cGFydA==",
- "key": "object-tests/keys/percent%20.txt",
- "op": "s3.upload_part",
- "part_number": 1,
- "upload_id": "fixture-upload+/276ca18046f9="
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-ec2738a0b15a\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -111038,7 +149713,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -111046,31 +149721,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/percent%20.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "cGFydA=="
+ "value": ""
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -111081,57 +149763,20 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-6d60d5bbaa47\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
},
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6d60d5bbaa47\""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/stage-key-plus",
- "profile": "s3",
- "lane": "core",
- "purpose": "stage, with the key \"plus+plus.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "cGFydA==",
- "key": "object-tests/keys/plus+plus.txt",
- "op": "s3.upload_part",
- "part_number": 1,
- "upload_id": "fixture-upload+/276ca18046f9="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -111141,7 +149786,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -111149,31 +149794,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/plus+plus.txt"
+ "value": "/object-tests/keys/café/雪.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "cGFydA=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -111187,56 +149848,15 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-6d60d5bbaa47\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6d60d5bbaa47\""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/stage-key-space",
- "profile": "s3",
- "lane": "core",
- "purpose": "stage, with the key \"space name.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "cGFydA==",
- "key": "object-tests/keys/space name.txt",
- "op": "s3.upload_part",
- "part_number": 1,
- "upload_id": "fixture-upload+/276ca18046f9="
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -111244,7 +149864,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -111252,31 +149872,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/space name.txt"
+ "value": "/object-tests/keys/café/雪.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "cGFydA=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -111290,13 +149926,13 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-6d60d5bbaa47\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -111316,26 +149952,45 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6d60d5bbaa47\""
+ "value": "\"fixture-ec4f3b9bcac2\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3/stage-key-non-ascii",
- "profile": "s3",
+ "id": "operations/s3-express/commit-key-double-slash",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "stage, with the key \"café/雪.txt\"",
+ "purpose": "commit, with the key \"double//slash.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "cGFydA==",
- "key": "object-tests/keys/café/雪.txt",
- "op": "s3.upload_part",
- "part_number": 1,
- "upload_id": "fixture-upload+/276ca18046f9="
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-ec2738a0b15a\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -111347,7 +150002,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -111355,31 +150010,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/café/雪.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "cGFydA=="
+ "value": ""
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -111390,57 +150052,20 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-6d60d5bbaa47\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
},
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6d60d5bbaa47\""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/stage-key-double-slash",
- "profile": "s3",
- "lane": "core",
- "purpose": "stage, with the key \"double//slash.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "cGFydA==",
- "key": "object-tests/keys/double//slash.txt",
- "op": "s3.upload_part",
- "part_number": 1,
- "upload_id": "fixture-upload+/276ca18046f9="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -111450,7 +150075,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -111458,31 +150083,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/double//slash.txt"
+ "value": "/object-tests/keys/double//slash.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "cGFydA=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -111496,56 +150137,15 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-6d60d5bbaa47\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/keys/double//slash.txtfixtureobject-tests/keys/double//slash.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6d60d5bbaa47\""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/stage-key-trailing-slash",
- "profile": "s3",
- "lane": "core",
- "purpose": "stage, with the key \"trailing-slash/\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "cGFydA==",
- "key": "object-tests/keys/trailing-slash/",
- "op": "s3.upload_part",
- "part_number": 1,
- "upload_id": "fixture-upload+/276ca18046f9="
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -111553,7 +150153,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -111561,31 +150161,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/keys/trailing-slash/"
+ "value": "/object-tests/keys/double//slash.txt"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "cGFydA=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -111599,13 +150215,13 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-6d60d5bbaa47\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "https://fixture.invalid/fixture/object-tests/keys/double//slash.txtfixtureobject-tests/keys/double//slash.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
+ },
+ "framing": "chunked"
}
}
]
@@ -111625,26 +150241,45 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6d60d5bbaa47\""
+ "value": "\"fixture-ec4f3b9bcac2\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3/stage-empty-part",
- "profile": "s3",
+ "id": "operations/s3-express/commit-key-trailing-slash",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "Stage an empty part, which S3 takes",
+ "purpose": "commit, with the key \"trailing-slash/\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "",
- "key": "object-tests/multipart/object.bin",
- "op": "s3.upload_part",
- "part_number": 1,
- "upload_id": "fixture-upload+/276ca18046f9="
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-ec2738a0b15a\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -111656,7 +150291,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -111664,11 +150299,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -111676,19 +150311,26 @@
}
},
{
- "at": "/query/partNumber",
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "1"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "is": "absent"
}
}
],
@@ -111699,55 +150341,20 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-6d60d5bbaa47\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
},
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6d60d5bbaa47\""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/staged-after-abort",
- "profile": "s3",
- "lane": "core",
- "purpose": "staged after abort",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/aborted.bin",
- "op": "s3.list_parts",
- "upload_id": "fixture-upload+/f85cf0cd3a3f="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -111757,7 +150364,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -111765,15 +150372,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/aborted.bin"
+ "value": "/object-tests/keys/trailing-slash/"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
}
},
{
@@ -111781,7 +150388,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/f85cf0cd3a3f="
+ "value": "fixture-upload+/c60fb1e2e00d="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -111790,67 +150421,20 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchUploadFixture error"
+ "data": "https://fixture.invalid/fixture/object-tests/keys/trailing-slash/fixtureobject-tests/keys/trailing-slash/\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
},
"framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "NoSuchUpload"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/staged-replacement",
- "profile": "s3",
- "lane": "core",
- "purpose": "staged replacement",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/replaced.bin",
- "op": "s3.list_parts",
- "upload_id": "fixture-upload+/6ba3c5e480a2="
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -111858,7 +150442,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -111866,15 +150450,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/replaced.bin"
+ "value": "/object-tests/keys/trailing-slash/"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
}
},
{
@@ -111882,7 +150466,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/6ba3c5e480a2="
+ "value": "fixture-upload+/c60fb1e2e00d="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -111893,7 +150501,6 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
@@ -111901,7 +150508,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/multipart/replaced.binfixture-upload+/6ba3c5e480a2=fixture-ownerfixture-ownerfixture-ownerSTANDARD021000false12024-01-01T00:00:00.000Z"fixture-5945c592bad7"122024-01-01T00:00:00.000Z"fixture-3c6b3668db13"6"
+ "data": "https://fixture.invalid/fixture/object-tests/keys/trailing-slash/fixtureobject-tests/keys/trailing-slash/\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
},
"framing": "chunked"
}
@@ -111919,76 +150526,53 @@
}
},
{
- "at": "/value/parts/0/number",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/parts/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/parts/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-5945c592bad7\""
- }
- },
- {
- "at": "/value/parts/1/number",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/parts/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 6
- }
- },
- {
- "at": "/value/parts/1/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-3c6b3668db13\""
+ "value": "\"fixture-ec4f3b9bcac2\""
}
},
{
- "at": "/value/parts",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "array_length",
- "value": 2
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3/staged-unknown-upload",
- "profile": "s3",
+ "id": "operations/s3-express/commit-200-internal-error",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "staged unknown upload",
+ "purpose": "Report a completion answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://repost.aws/knowledge-center/s3-resolve-200-internalerror",
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html",
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html"
],
+ "origin": "transient",
+ "derived_from": "operations/s3-express/commit",
"call": {
"key": "object-tests/multipart/object.bin",
- "op": "s3.list_parts",
- "upload_id": "fixture-upload+/4d0d5ccc4993="
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "number": 1
+ },
+ {
+ "etag": "\"fixture-ec2738a0b15a\"",
+ "number": 2
+ }
+ ],
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -112008,11 +150592,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -112020,11 +150604,26 @@
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/4d0d5ccc4993="
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -112033,65 +150632,22 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchUploadFixture error"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "NoSuchUpload"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/staged",
- "profile": "s3",
- "lane": "core",
- "purpose": "staged",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.list_parts",
- "upload_id": "fixture-upload+/276ca18046f9="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -112101,7 +150657,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -112109,15 +150665,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
}
},
{
@@ -112125,7 +150681,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/276ca18046f9="
+ "value": "fixture-upload+/c60fb1e2e00d="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -112139,102 +150719,15 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/multipart/object.binfixture-upload+/276ca18046f9=fixture-ownerfixture-ownerfixture-ownerSTANDARD021000false12024-01-01T00:00:00.000Z"fixture-6d60d5bbaa47"524288022024-01-01T00:00:00.000Z"fixture-32b70ae425ac"6"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/parts/0/number",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/parts/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 5242880
- }
- },
- {
- "at": "/value/parts/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6d60d5bbaa47\""
- }
- },
- {
- "at": "/value/parts/1/number",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/parts/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 6
- }
- },
- {
- "at": "/value/parts/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-32b70ae425ac\""
- }
- },
- {
- "at": "/value/parts",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/start-bucket-missing",
- "profile": "s3",
- "lane": "core",
- "purpose": "start bucket missing",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object.bin",
- "op": "s3.create_multipart"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -112250,23 +150743,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object.bin"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/query/uploads",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -112275,7 +150792,7 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
@@ -112284,55 +150801,13 @@
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchBucketFixture error"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "NoSuchBucket"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/start-unauthenticated",
- "profile": "s3",
- "lane": "core",
- "purpose": "Report the service authorization error for this operation; signature acceptance is tested separately.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.create_multipart"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -112350,23 +150825,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/query/uploads",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -112375,7 +150874,7 @@
],
"allow_query": [],
"response": {
- "status": 403,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
@@ -112384,57 +150883,11 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidAccessKeyIdFixture error"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 403
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidAccessKeyId"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/start",
- "profile": "s3",
- "lane": "core",
- "purpose": "start",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.create_multipart"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -112450,23 +150903,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/multipart/object.bin"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/query/uploads",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -112477,58 +150954,21 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "fixtureobject-tests/multipart/object.binfixture-upload+/276ca18046f9="
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/upload_id",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-upload+/276ca18046f9="
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/azure/put-metadata-non-ascii-value",
- "profile": "azure",
- "lane": "core",
- "purpose": "put metadata non ascii value",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/non-ascii.txt",
- "metadata": {
- "value": "café"
+ ],
+ "optional": true
},
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -112538,7 +150978,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -112546,34 +150986,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/non-ascii.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/headers/x-ms-meta-value",
+ "at": "/headers/host",
"optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "café",
- "café"
- ]
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -112582,111 +151035,20 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "InvalidMetadata"
+ }
},
"body": {
"encoding": "utf8",
- "data": "InvalidMetadataFixture error"
- }
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidMetadata"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "metadata"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": "InvalidMetadata"
- }
- }
- ]
- },
- {
- "id": "operations/azure-hns/put-metadata-non-ascii-value",
- "profile": "azure-hns",
- "lane": "core",
- "purpose": "put metadata non ascii value",
- "sources": [
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_rest_client.cpp"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/non-ascii.txt",
- "metadata": {
- "value": "café"
- },
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -112694,7 +151056,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -112702,34 +151064,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/non-ascii.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/headers/x-ms-meta-value",
+ "at": "/headers/host",
"optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "café",
- "café"
- ]
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/headers/x-ms-blob-type",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "BlockBlob"
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -112738,109 +151113,23 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "x-ms-error-code": "InvalidMetadata"
+ }
},
"body": {
"encoding": "utf8",
- "data": "InvalidMetadataFixture error"
- }
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidMetadata"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "metadata"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": "InvalidMetadata"
- }
- }
- ]
- },
- {
- "id": "operations/s3/put-metadata-non-ascii-value",
- "profile": "s3",
- "lane": "core",
- "purpose": "A general-purpose bucket reads header bytes as ISO-8859-1 and decodes an RFC 2047 encoded word. Send é as the byte e9 or as an encoded word, or refuse the value if the client keeps metadata to ASCII; its UTF-8 bytes store café.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/non-ascii.txt",
- "metadata": {
- "value": "café"
+ ],
+ "optional": true
},
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -112850,7 +151139,85 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/c60fb1e2e00d="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
}
},
{
@@ -112858,23 +151225,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/non-ascii.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/headers/x-amz-meta-value",
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "café|=\\?(?i:utf-8)\\?(?:(?i:q)\\?caf=(?i:c3)=(?i:a9)|(?i:b)\\?Y2Fmw6k=)\\?="
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -112885,94 +151276,21 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "metadata"
- }
- }
- ]
- },
- {
- "id": "operations/s3/put-metadata-value-edge-whitespace",
- "profile": "s3",
- "lane": "core",
- "purpose": "HTTP drops spaces and tabs at either end of a header value, so S3 would store a. An RFC 2047 encoded word stores them, but a read returns the value unencoded and loses them again. Send an encoded word, or refuse the value.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/value-edge-whitespace.txt",
- "metadata": {
- "value": "\ta "
+ ],
+ "optional": true
},
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -112982,7 +151300,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -112990,23 +151308,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/value-edge-whitespace.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/headers/x-amz-meta-value",
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:09)a(?:_|=(?i:20))|(?i:b)\\?CWEg)\\?="
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -113017,96 +151359,18 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "metadata"
- }
- }
- ]
- },
- {
- "id": "operations/s3/put-metadata-value-encoded-word-text",
- "profile": "s3",
- "lane": "core",
- "purpose": "A general-purpose bucket reads each space-separated token that starts with =? and ends with ?= as an RFC 2047 encoded word: it decodes it, or answers 400 or 500 when it cannot. So =?UTF-8?Q?caf=C3=A9?= sent as it is stores café. Wrapped in an encoded word of its own it stores the text, but a read returns it unencoded and decodes it again. Wrap it, or refuse it.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/value-encoded-word-text.txt",
- "metadata": {
- "value": "=?UTF-8?Q?caf=C3=A9?="
- },
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -113114,7 +151378,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -113122,23 +151386,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/value-encoded-word-text.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/headers/x-amz-meta-value",
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:3d)=(?i:3f)UTF-8=(?i:3f)Q=(?i:3f)caf=(?i:3d)C3=(?i:3d)A9=(?i:3f)=(?i:3d)|(?i:b)\\?PT9VVEYtOD9RP2NhZj1DMz1BOT89)\\?="
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -113149,94 +151437,21 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "metadata"
- }
- }
- ]
- },
- {
- "id": "operations/s3/put-metadata-value-not-an-encoded-word",
- "profile": "s3",
- "lane": "core",
- "purpose": "A general-purpose bucket reads each space-separated token that starts with =? and ends with ?= as an RFC 2047 encoded word: it decodes it, or answers 400 or 500 when it cannot. Neither a=?b?=c nor x=?UTF-8?Q?caf=C3=A9?=y is such a token, so S3 stores this value as it is sent, and a read returns it. Send it as it is, or wrapped in an encoded word; do not refuse it.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/value-not-an-encoded-word.txt",
- "metadata": {
- "value": "a=?b?=c x=?UTF-8?Q?caf=C3=A9?=y"
+ ],
+ "optional": true
},
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -113246,7 +151461,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -113254,23 +151469,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/value-not-an-encoded-word.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/headers/x-amz-meta-value",
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "a=\\?b\\?=c x=\\?UTF-8\\?Q\\?caf=C3=A9\\?=y|=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:3d)=(?i:3f)b=(?i:3f)=(?i:3d)c(?:_|=(?i:20))x=(?i:3d)=(?i:3f)UTF-8=(?i:3f)Q=(?i:3f)caf=(?i:3d)C3=(?i:3d)A9=(?i:3f)=(?i:3d)y|(?i:b)\\?YT0/Yj89YyB4PT9VVEYtOD9RP2NhZj1DMz1BOT89eQ==)\\?="
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -113281,71 +151520,18 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-metadata-value-control-characters",
- "profile": "s3",
- "lane": "core",
- "purpose": "A control character other than a tab is no valid HTTP field value. Send the value as an RFC 2047 encoded word, which S3 stores and a read decodes again, or refuse it.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/value-control-characters.txt",
- "metadata": {
- "value": "a\u0000bc"
- },
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -113353,7 +151539,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -113361,23 +151547,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/value-control-characters.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_base64",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
- "at": "/headers/x-amz-meta-value",
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:00)b=(?i:7f)c|(?i:b)\\?YQBif2M=)\\?="
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -113388,19 +151598,20 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -113409,71 +151620,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "InternalError"
}
}
],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "metadata"
- }
- }
- ]
+ "refusal": null
},
{
- "id": "operations/s3/put-metadata-value-line-break",
- "profile": "s3",
+ "id": "operations/s3-express/complete-multipart-200-error",
+ "profile": "s3-express",
"lane": "core",
- "purpose": "CR and LF are no valid HTTP field value, and a general-purpose bucket stores each as a space even inside an RFC 2047 encoded word. No request stores the value, so refuse it.",
+ "purpose": "complete multipart 200 error",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html"
],
+ "origin": "transient",
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/value-line-break.txt",
- "metadata": {
- "value": "a\r\nb"
- },
- "op": "put"
+ "key": "object",
+ "op": "s3.complete_multipart",
+ "parts": [
+ {
+ "etag": "\"part\"",
+ "number": 1
+ }
+ ],
+ "upload_id": "upload+/="
},
"exchanges": [
{
@@ -113485,7 +151664,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -113493,23 +151672,38 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/value-line-break.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": ""
}
},
{
- "at": "/headers/x-amz-meta-value",
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:0d)=(?i:0a)b|(?i:b)\\?YQ0KYg==)\\?="
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -113520,75 +151714,20 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "metadata"
- }
- }
- ]
- },
- {
- "id": "operations/s3/put-metadata-value-with-tab",
- "profile": "s3",
- "lane": "core",
- "purpose": "S3 stores a tab inside a value as it is sent. Send it raw, or inside an RFC 2047 encoded word.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/value-with-tab.txt",
- "metadata": {
- "value": "a\tb"
},
- "op": "put"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -113598,7 +151737,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -113606,23 +151745,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/value-with-tab.txt"
+ "value": "/object"
}
},
{
- "at": "/body_base64",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "upload+/="
}
},
{
- "at": "/headers/x-amz-meta-value",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "1\"part\""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "a\tb|=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:09)b|(?i:b)\\?YQli)\\?="
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -113633,71 +151796,21 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
"encoding": "base64",
- "data": ""
- }
+ "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkludmFsaWRQYXJ0PC9Db2RlPjxNZXNzYWdlPmZpeHR1cmUgZXJyb3I8L01lc3NhZ2U+PC9FcnJvcj4="
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3/put-metadata-outside-latin-1",
- "profile": "s3",
- "lane": "core",
- "purpose": "No header byte carries 雪, so send it as an RFC 2047 encoded word, or refuse the value if the client keeps metadata to ASCII. A general-purpose bucket stores its UTF-8 bytes as three ISO-8859-1 characters.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/outside-latin-1.txt",
- "metadata": {
- "value": "雪"
- },
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -113705,7 +151818,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "POST"
}
},
{
@@ -113713,23 +151826,47 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/fixture/object-tests/metadata/outside-latin-1.txt"
+ "value": "/object"
}
},
{
- "at": "/body_base64",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "upload+/="
}
},
{
- "at": "/headers/x-amz-meta-value",
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": "\"part\"1"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:e9)=(?i:9b)=(?i:aa)|(?i:b)\\?6Zuq)\\?="
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -113740,16 +151877,19 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
"encoding": "base64",
- "data": ""
- }
+ "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkludmFsaWRQYXJ0PC9Db2RlPjxNZXNzYWdlPmZpeHR1cmUgZXJyb3I8L01lc3NhZ2U+PC9FcnJvcj4="
+ },
+ "framing": "chunked"
}
}
]
@@ -113761,68 +151901,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "InvalidPart"
}
}
],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "metadata"
- }
- }
- ]
+ "refusal": null
},
{
- "id": "operations/s3-express/abort-after-commit",
+ "id": "operations/s3-express/delete-accepted",
"profile": "s3-express",
"lane": "core",
- "purpose": "abort after commit",
+ "purpose": "delete accepted",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.abort_multipart",
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "key": "object-tests/remove/present.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -113915,7 +152018,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/remove/present.txt"
}
},
{
@@ -113926,14 +152029,6 @@
"value": ""
}
},
- {
- "at": "/query/uploadId",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -113993,17 +152088,16 @@
"refusal": null
},
{
- "id": "operations/s3-express/abort-unknown-upload",
+ "id": "operations/s3-express/delete-accepted-key-question",
"profile": "s3-express",
"lane": "core",
- "purpose": "abort unknown upload",
+ "purpose": "delete accepted, with the key \"question?mark.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.abort_multipart",
- "upload_id": "fixture-upload+/4d0d5ccc4993="
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -114096,7 +152190,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/keys/question?mark.txt"
}
},
{
@@ -114107,14 +152201,6 @@
"value": ""
}
},
- {
- "at": "/query/uploadId",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-upload+/4d0d5ccc4993="
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -114145,18 +152231,17 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 204,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nNoSuchUploadFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -114168,40 +152253,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "NoSuchUpload"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/abort",
+ "id": "operations/s3-express/delete-accepted-key-hash",
"profile": "s3-express",
"lane": "core",
- "purpose": "abort",
+ "purpose": "delete accepted, with the key \"hash#tag.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/aborted.bin",
- "op": "s3.abort_multipart",
- "upload_id": "fixture-upload+/4bef2cd6d025="
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -114294,7 +152362,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/aborted.bin"
+ "value": "/object-tests/keys/hash#tag.txt"
}
},
{
@@ -114305,14 +152373,6 @@
"value": ""
}
},
- {
- "at": "/query/uploadId",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-upload+/4bef2cd6d025="
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -114372,23 +152432,16 @@
"refusal": null
},
{
- "id": "operations/s3-express/commit-after-abort",
+ "id": "operations/s3-express/delete-accepted-key-percent",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit after abort",
+ "purpose": "delete accepted, with the key \"percent%20.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/aborted.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-db71b2c0257c\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/4bef2cd6d025="
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -114473,7 +152526,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "DELETE"
}
},
{
@@ -114481,23 +152534,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/aborted.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-db71b2c0257c\""
+ "value": "/object-tests/keys/percent%20.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/4bef2cd6d025="
+ "value": ""
}
},
{
@@ -114530,7 +152575,7 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 204,
"headers": {
"date": {
"from": "now"
@@ -114538,88 +152583,9 @@
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "NoSuchUploadFixture error"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "POST"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/multipart/aborted.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-db71b2c0257c\"1"
- }
- },
- {
- "at": "/query/uploadId",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-upload+/4bef2cd6d025="
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
+ "encoding": "base64",
+ "data": ""
}
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "utf8",
- "data": "NoSuchUploadFixture error"
- },
- "framing": "chunked"
}
}
]
@@ -114631,47 +152597,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 200
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "NoSuchUpload"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-lost-the-race-to-create",
+ "id": "operations/s3-express/delete-accepted-key-plus",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit lost the race to create",
+ "purpose": "delete accepted, with the key \"plus+plus.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "if_none_match": "*",
- "key": "object-tests/multipart/guarded.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-201c9ed6f636\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/c7be505aec65="
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -114756,7 +152698,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "DELETE"
}
},
{
@@ -114764,31 +152706,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/guarded.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-201c9ed6f636\""
- }
- },
- {
- "at": "/headers/if-none-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "*"
+ "value": "/object-tests/keys/plus+plus.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c7be505aec65="
+ "value": ""
}
},
{
@@ -114821,7 +152747,7 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 204,
"headers": {
"date": {
"from": "now"
@@ -114829,12 +152755,41 @@
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "PreconditionFailedFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/delete-accepted-key-space",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "delete accepted, with the key \"space name.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/keys/space name.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -114842,7 +152797,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -114850,31 +152805,88 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/guarded.bin"
+ "value": "/"
}
},
{
- "at": "/body_text",
+ "at": "/query/session",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-201c9ed6f636\"1"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "*"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c7be505aec65="
+ "value": "DELETE"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/keys/space name.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
},
{
@@ -114907,7 +152919,7 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 204,
"headers": {
"date": {
"from": "now"
@@ -114915,10 +152927,9 @@
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "PreconditionFailedFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -114930,41 +152941,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 200
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PreconditionFailed"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-nothing",
+ "id": "operations/s3-express/delete-accepted-key-non-ascii",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit nothing",
+ "purpose": "delete accepted, with the key \"café/雪.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/guarded.bin",
- "op": "s3.complete_multipart",
- "parts": [],
- "upload_id": "fixture-upload+/c7be505aec65="
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -115049,7 +153042,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "DELETE"
}
},
{
@@ -115057,23 +153050,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/guarded.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": ""
+ "value": "/object-tests/keys/café/雪.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c7be505aec65="
+ "value": ""
}
},
{
@@ -115106,20 +153091,49 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 204,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nMalformedXMLFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/delete-accepted-key-double-slash",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "delete accepted, with the key \"double//slash.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "delete"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -115127,31 +153141,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/multipart/guarded.bin"
+ "value": "GET"
}
},
{
- "at": "/body_text",
+ "at": "/path",
"optional": false,
"rule": {
- "is": "xml",
- "value": ""
+ "is": "equal",
+ "value": "/"
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c7be505aec65="
+ "value": ""
}
},
{
@@ -115163,19 +153169,18 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
@@ -115184,20 +153189,24 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nMalformedXMLFixture error"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
- },
+ }
+ ]
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -115205,7 +153214,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "DELETE"
}
},
{
@@ -115213,15 +153222,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/guarded.bin"
- }
- },
- {
- "at": "/query/uploadId",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-upload+/c7be505aec65="
+ "value": "/object-tests/keys/double//slash.txt"
}
},
{
@@ -115262,18 +153263,17 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 204,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidRequestYou must specify at least one part"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -115285,97 +153285,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "one_of",
- "values": [
- "MalformedXML",
- "InvalidRequest"
- ]
+ "value": "ok"
}
}
],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "parts"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "MalformedXML",
- "InvalidRequest"
- ]
- }
- }
- ]
+ "refusal": null
},
{
- "id": "operations/s3-express/commit-out-of-order",
+ "id": "operations/s3-express/delete-accepted-key-trailing-slash",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit out of order",
+ "purpose": "delete accepted, with the key \"trailing-slash/\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-ec2738a0b15a\"",
- "number": 2
- },
- {
- "etag": "\"fixture-9aff617fcdf8\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "delete"
},
"exchanges": [
{
@@ -115460,7 +153386,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "DELETE"
}
},
{
@@ -115468,23 +153394,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "2\"fixture-ec2738a0b15a\"1\"fixture-9aff617fcdf8\""
+ "value": "/object-tests/keys/trailing-slash/"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": ""
}
},
{
@@ -115517,20 +153435,53 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 204,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidPartOrderFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/delete-many",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Delete several objects in one request and report each result",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html"
+ ],
+ "call": {
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ],
+ "op": "delete_many"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -115538,7 +153489,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -115546,23 +153497,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-ec2738a0b15a\"2\"fixture-9aff617fcdf8\"1"
+ "value": "/"
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": ""
}
},
{
@@ -115574,39 +153517,139 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/delete",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc64nvme",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nobject-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txt"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidPartOrderFixture error"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
]
@@ -115618,91 +153661,49 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/deleted",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
+ ]
}
},
{
- "at": "/code",
+ "at": "/value/errors",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidPartOrder"
+ "value": []
}
}
],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "parts"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": "InvalidPartOrder"
- }
- }
- ]
+ "refusal": null
},
{
- "id": "operations/s3-express/commit-part-too-small",
+ "id": "operations/s3-express/delete-many-errors",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit part too small",
+ "purpose": "Report each key that S3 lists as an Error in a DeleteObjects answer, here AccessDenied, as that key's error, and the others as deleted",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html"
],
+ "origin": "transient",
+ "derived_from": "operations/s3-express/delete-many",
"call": {
- "key": "object-tests/multipart/small.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-132cb4a5de9d\"",
- "number": 1
- },
- {
- "etag": "\"fixture-2cab82eb728e\"",
- "number": 2
- }
+ "keys": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt",
+ "object-tests/batch/absent.txt"
],
- "upload_id": "fixture-upload+/09837ae2020c="
+ "op": "delete_many"
},
"exchanges": [
{
@@ -115757,6 +153758,107 @@
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/delete",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc64nvme",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nobject-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txtAccessDeniedFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -115777,7 +153879,1058 @@
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/deleted",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ "object-tests/batch/a.txt",
+ "object-tests/batch/b.txt"
+ ]
+ }
},
+ {
+ "at": "/value/errors",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ {
+ "code": "AccessDenied",
+ "key": "object-tests/batch/absent.txt"
+ }
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/delete-many-1000",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Delete 1,000 keys in one DeleteObjects request, the most S3 takes",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html"
+ ],
+ "call": {
+ "keys": [
+ "object-tests/batch/many-0000.txt",
+ "object-tests/batch/many-0001.txt",
+ "object-tests/batch/many-0002.txt",
+ "object-tests/batch/many-0003.txt",
+ "object-tests/batch/many-0004.txt",
+ "object-tests/batch/many-0005.txt",
+ "object-tests/batch/many-0006.txt",
+ "object-tests/batch/many-0007.txt",
+ "object-tests/batch/many-0008.txt",
+ "object-tests/batch/many-0009.txt",
+ "object-tests/batch/many-0010.txt",
+ "object-tests/batch/many-0011.txt",
+ "object-tests/batch/many-0012.txt",
+ "object-tests/batch/many-0013.txt",
+ "object-tests/batch/many-0014.txt",
+ "object-tests/batch/many-0015.txt",
+ "object-tests/batch/many-0016.txt",
+ "object-tests/batch/many-0017.txt",
+ "object-tests/batch/many-0018.txt",
+ "object-tests/batch/many-0019.txt",
+ "object-tests/batch/many-0020.txt",
+ "object-tests/batch/many-0021.txt",
+ "object-tests/batch/many-0022.txt",
+ "object-tests/batch/many-0023.txt",
+ "object-tests/batch/many-0024.txt",
+ "object-tests/batch/many-0025.txt",
+ "object-tests/batch/many-0026.txt",
+ "object-tests/batch/many-0027.txt",
+ "object-tests/batch/many-0028.txt",
+ "object-tests/batch/many-0029.txt",
+ "object-tests/batch/many-0030.txt",
+ "object-tests/batch/many-0031.txt",
+ "object-tests/batch/many-0032.txt",
+ "object-tests/batch/many-0033.txt",
+ "object-tests/batch/many-0034.txt",
+ "object-tests/batch/many-0035.txt",
+ "object-tests/batch/many-0036.txt",
+ "object-tests/batch/many-0037.txt",
+ "object-tests/batch/many-0038.txt",
+ "object-tests/batch/many-0039.txt",
+ "object-tests/batch/many-0040.txt",
+ "object-tests/batch/many-0041.txt",
+ "object-tests/batch/many-0042.txt",
+ "object-tests/batch/many-0043.txt",
+ "object-tests/batch/many-0044.txt",
+ "object-tests/batch/many-0045.txt",
+ "object-tests/batch/many-0046.txt",
+ "object-tests/batch/many-0047.txt",
+ "object-tests/batch/many-0048.txt",
+ "object-tests/batch/many-0049.txt",
+ "object-tests/batch/many-0050.txt",
+ "object-tests/batch/many-0051.txt",
+ "object-tests/batch/many-0052.txt",
+ "object-tests/batch/many-0053.txt",
+ "object-tests/batch/many-0054.txt",
+ "object-tests/batch/many-0055.txt",
+ "object-tests/batch/many-0056.txt",
+ "object-tests/batch/many-0057.txt",
+ "object-tests/batch/many-0058.txt",
+ "object-tests/batch/many-0059.txt",
+ "object-tests/batch/many-0060.txt",
+ "object-tests/batch/many-0061.txt",
+ "object-tests/batch/many-0062.txt",
+ "object-tests/batch/many-0063.txt",
+ "object-tests/batch/many-0064.txt",
+ "object-tests/batch/many-0065.txt",
+ "object-tests/batch/many-0066.txt",
+ "object-tests/batch/many-0067.txt",
+ "object-tests/batch/many-0068.txt",
+ "object-tests/batch/many-0069.txt",
+ "object-tests/batch/many-0070.txt",
+ "object-tests/batch/many-0071.txt",
+ "object-tests/batch/many-0072.txt",
+ "object-tests/batch/many-0073.txt",
+ "object-tests/batch/many-0074.txt",
+ "object-tests/batch/many-0075.txt",
+ "object-tests/batch/many-0076.txt",
+ "object-tests/batch/many-0077.txt",
+ "object-tests/batch/many-0078.txt",
+ "object-tests/batch/many-0079.txt",
+ "object-tests/batch/many-0080.txt",
+ "object-tests/batch/many-0081.txt",
+ "object-tests/batch/many-0082.txt",
+ "object-tests/batch/many-0083.txt",
+ "object-tests/batch/many-0084.txt",
+ "object-tests/batch/many-0085.txt",
+ "object-tests/batch/many-0086.txt",
+ "object-tests/batch/many-0087.txt",
+ "object-tests/batch/many-0088.txt",
+ "object-tests/batch/many-0089.txt",
+ "object-tests/batch/many-0090.txt",
+ "object-tests/batch/many-0091.txt",
+ "object-tests/batch/many-0092.txt",
+ "object-tests/batch/many-0093.txt",
+ "object-tests/batch/many-0094.txt",
+ "object-tests/batch/many-0095.txt",
+ "object-tests/batch/many-0096.txt",
+ "object-tests/batch/many-0097.txt",
+ "object-tests/batch/many-0098.txt",
+ "object-tests/batch/many-0099.txt",
+ "object-tests/batch/many-0100.txt",
+ "object-tests/batch/many-0101.txt",
+ "object-tests/batch/many-0102.txt",
+ "object-tests/batch/many-0103.txt",
+ "object-tests/batch/many-0104.txt",
+ "object-tests/batch/many-0105.txt",
+ "object-tests/batch/many-0106.txt",
+ "object-tests/batch/many-0107.txt",
+ "object-tests/batch/many-0108.txt",
+ "object-tests/batch/many-0109.txt",
+ "object-tests/batch/many-0110.txt",
+ "object-tests/batch/many-0111.txt",
+ "object-tests/batch/many-0112.txt",
+ "object-tests/batch/many-0113.txt",
+ "object-tests/batch/many-0114.txt",
+ "object-tests/batch/many-0115.txt",
+ "object-tests/batch/many-0116.txt",
+ "object-tests/batch/many-0117.txt",
+ "object-tests/batch/many-0118.txt",
+ "object-tests/batch/many-0119.txt",
+ "object-tests/batch/many-0120.txt",
+ "object-tests/batch/many-0121.txt",
+ "object-tests/batch/many-0122.txt",
+ "object-tests/batch/many-0123.txt",
+ "object-tests/batch/many-0124.txt",
+ "object-tests/batch/many-0125.txt",
+ "object-tests/batch/many-0126.txt",
+ "object-tests/batch/many-0127.txt",
+ "object-tests/batch/many-0128.txt",
+ "object-tests/batch/many-0129.txt",
+ "object-tests/batch/many-0130.txt",
+ "object-tests/batch/many-0131.txt",
+ "object-tests/batch/many-0132.txt",
+ "object-tests/batch/many-0133.txt",
+ "object-tests/batch/many-0134.txt",
+ "object-tests/batch/many-0135.txt",
+ "object-tests/batch/many-0136.txt",
+ "object-tests/batch/many-0137.txt",
+ "object-tests/batch/many-0138.txt",
+ "object-tests/batch/many-0139.txt",
+ "object-tests/batch/many-0140.txt",
+ "object-tests/batch/many-0141.txt",
+ "object-tests/batch/many-0142.txt",
+ "object-tests/batch/many-0143.txt",
+ "object-tests/batch/many-0144.txt",
+ "object-tests/batch/many-0145.txt",
+ "object-tests/batch/many-0146.txt",
+ "object-tests/batch/many-0147.txt",
+ "object-tests/batch/many-0148.txt",
+ "object-tests/batch/many-0149.txt",
+ "object-tests/batch/many-0150.txt",
+ "object-tests/batch/many-0151.txt",
+ "object-tests/batch/many-0152.txt",
+ "object-tests/batch/many-0153.txt",
+ "object-tests/batch/many-0154.txt",
+ "object-tests/batch/many-0155.txt",
+ "object-tests/batch/many-0156.txt",
+ "object-tests/batch/many-0157.txt",
+ "object-tests/batch/many-0158.txt",
+ "object-tests/batch/many-0159.txt",
+ "object-tests/batch/many-0160.txt",
+ "object-tests/batch/many-0161.txt",
+ "object-tests/batch/many-0162.txt",
+ "object-tests/batch/many-0163.txt",
+ "object-tests/batch/many-0164.txt",
+ "object-tests/batch/many-0165.txt",
+ "object-tests/batch/many-0166.txt",
+ "object-tests/batch/many-0167.txt",
+ "object-tests/batch/many-0168.txt",
+ "object-tests/batch/many-0169.txt",
+ "object-tests/batch/many-0170.txt",
+ "object-tests/batch/many-0171.txt",
+ "object-tests/batch/many-0172.txt",
+ "object-tests/batch/many-0173.txt",
+ "object-tests/batch/many-0174.txt",
+ "object-tests/batch/many-0175.txt",
+ "object-tests/batch/many-0176.txt",
+ "object-tests/batch/many-0177.txt",
+ "object-tests/batch/many-0178.txt",
+ "object-tests/batch/many-0179.txt",
+ "object-tests/batch/many-0180.txt",
+ "object-tests/batch/many-0181.txt",
+ "object-tests/batch/many-0182.txt",
+ "object-tests/batch/many-0183.txt",
+ "object-tests/batch/many-0184.txt",
+ "object-tests/batch/many-0185.txt",
+ "object-tests/batch/many-0186.txt",
+ "object-tests/batch/many-0187.txt",
+ "object-tests/batch/many-0188.txt",
+ "object-tests/batch/many-0189.txt",
+ "object-tests/batch/many-0190.txt",
+ "object-tests/batch/many-0191.txt",
+ "object-tests/batch/many-0192.txt",
+ "object-tests/batch/many-0193.txt",
+ "object-tests/batch/many-0194.txt",
+ "object-tests/batch/many-0195.txt",
+ "object-tests/batch/many-0196.txt",
+ "object-tests/batch/many-0197.txt",
+ "object-tests/batch/many-0198.txt",
+ "object-tests/batch/many-0199.txt",
+ "object-tests/batch/many-0200.txt",
+ "object-tests/batch/many-0201.txt",
+ "object-tests/batch/many-0202.txt",
+ "object-tests/batch/many-0203.txt",
+ "object-tests/batch/many-0204.txt",
+ "object-tests/batch/many-0205.txt",
+ "object-tests/batch/many-0206.txt",
+ "object-tests/batch/many-0207.txt",
+ "object-tests/batch/many-0208.txt",
+ "object-tests/batch/many-0209.txt",
+ "object-tests/batch/many-0210.txt",
+ "object-tests/batch/many-0211.txt",
+ "object-tests/batch/many-0212.txt",
+ "object-tests/batch/many-0213.txt",
+ "object-tests/batch/many-0214.txt",
+ "object-tests/batch/many-0215.txt",
+ "object-tests/batch/many-0216.txt",
+ "object-tests/batch/many-0217.txt",
+ "object-tests/batch/many-0218.txt",
+ "object-tests/batch/many-0219.txt",
+ "object-tests/batch/many-0220.txt",
+ "object-tests/batch/many-0221.txt",
+ "object-tests/batch/many-0222.txt",
+ "object-tests/batch/many-0223.txt",
+ "object-tests/batch/many-0224.txt",
+ "object-tests/batch/many-0225.txt",
+ "object-tests/batch/many-0226.txt",
+ "object-tests/batch/many-0227.txt",
+ "object-tests/batch/many-0228.txt",
+ "object-tests/batch/many-0229.txt",
+ "object-tests/batch/many-0230.txt",
+ "object-tests/batch/many-0231.txt",
+ "object-tests/batch/many-0232.txt",
+ "object-tests/batch/many-0233.txt",
+ "object-tests/batch/many-0234.txt",
+ "object-tests/batch/many-0235.txt",
+ "object-tests/batch/many-0236.txt",
+ "object-tests/batch/many-0237.txt",
+ "object-tests/batch/many-0238.txt",
+ "object-tests/batch/many-0239.txt",
+ "object-tests/batch/many-0240.txt",
+ "object-tests/batch/many-0241.txt",
+ "object-tests/batch/many-0242.txt",
+ "object-tests/batch/many-0243.txt",
+ "object-tests/batch/many-0244.txt",
+ "object-tests/batch/many-0245.txt",
+ "object-tests/batch/many-0246.txt",
+ "object-tests/batch/many-0247.txt",
+ "object-tests/batch/many-0248.txt",
+ "object-tests/batch/many-0249.txt",
+ "object-tests/batch/many-0250.txt",
+ "object-tests/batch/many-0251.txt",
+ "object-tests/batch/many-0252.txt",
+ "object-tests/batch/many-0253.txt",
+ "object-tests/batch/many-0254.txt",
+ "object-tests/batch/many-0255.txt",
+ "object-tests/batch/many-0256.txt",
+ "object-tests/batch/many-0257.txt",
+ "object-tests/batch/many-0258.txt",
+ "object-tests/batch/many-0259.txt",
+ "object-tests/batch/many-0260.txt",
+ "object-tests/batch/many-0261.txt",
+ "object-tests/batch/many-0262.txt",
+ "object-tests/batch/many-0263.txt",
+ "object-tests/batch/many-0264.txt",
+ "object-tests/batch/many-0265.txt",
+ "object-tests/batch/many-0266.txt",
+ "object-tests/batch/many-0267.txt",
+ "object-tests/batch/many-0268.txt",
+ "object-tests/batch/many-0269.txt",
+ "object-tests/batch/many-0270.txt",
+ "object-tests/batch/many-0271.txt",
+ "object-tests/batch/many-0272.txt",
+ "object-tests/batch/many-0273.txt",
+ "object-tests/batch/many-0274.txt",
+ "object-tests/batch/many-0275.txt",
+ "object-tests/batch/many-0276.txt",
+ "object-tests/batch/many-0277.txt",
+ "object-tests/batch/many-0278.txt",
+ "object-tests/batch/many-0279.txt",
+ "object-tests/batch/many-0280.txt",
+ "object-tests/batch/many-0281.txt",
+ "object-tests/batch/many-0282.txt",
+ "object-tests/batch/many-0283.txt",
+ "object-tests/batch/many-0284.txt",
+ "object-tests/batch/many-0285.txt",
+ "object-tests/batch/many-0286.txt",
+ "object-tests/batch/many-0287.txt",
+ "object-tests/batch/many-0288.txt",
+ "object-tests/batch/many-0289.txt",
+ "object-tests/batch/many-0290.txt",
+ "object-tests/batch/many-0291.txt",
+ "object-tests/batch/many-0292.txt",
+ "object-tests/batch/many-0293.txt",
+ "object-tests/batch/many-0294.txt",
+ "object-tests/batch/many-0295.txt",
+ "object-tests/batch/many-0296.txt",
+ "object-tests/batch/many-0297.txt",
+ "object-tests/batch/many-0298.txt",
+ "object-tests/batch/many-0299.txt",
+ "object-tests/batch/many-0300.txt",
+ "object-tests/batch/many-0301.txt",
+ "object-tests/batch/many-0302.txt",
+ "object-tests/batch/many-0303.txt",
+ "object-tests/batch/many-0304.txt",
+ "object-tests/batch/many-0305.txt",
+ "object-tests/batch/many-0306.txt",
+ "object-tests/batch/many-0307.txt",
+ "object-tests/batch/many-0308.txt",
+ "object-tests/batch/many-0309.txt",
+ "object-tests/batch/many-0310.txt",
+ "object-tests/batch/many-0311.txt",
+ "object-tests/batch/many-0312.txt",
+ "object-tests/batch/many-0313.txt",
+ "object-tests/batch/many-0314.txt",
+ "object-tests/batch/many-0315.txt",
+ "object-tests/batch/many-0316.txt",
+ "object-tests/batch/many-0317.txt",
+ "object-tests/batch/many-0318.txt",
+ "object-tests/batch/many-0319.txt",
+ "object-tests/batch/many-0320.txt",
+ "object-tests/batch/many-0321.txt",
+ "object-tests/batch/many-0322.txt",
+ "object-tests/batch/many-0323.txt",
+ "object-tests/batch/many-0324.txt",
+ "object-tests/batch/many-0325.txt",
+ "object-tests/batch/many-0326.txt",
+ "object-tests/batch/many-0327.txt",
+ "object-tests/batch/many-0328.txt",
+ "object-tests/batch/many-0329.txt",
+ "object-tests/batch/many-0330.txt",
+ "object-tests/batch/many-0331.txt",
+ "object-tests/batch/many-0332.txt",
+ "object-tests/batch/many-0333.txt",
+ "object-tests/batch/many-0334.txt",
+ "object-tests/batch/many-0335.txt",
+ "object-tests/batch/many-0336.txt",
+ "object-tests/batch/many-0337.txt",
+ "object-tests/batch/many-0338.txt",
+ "object-tests/batch/many-0339.txt",
+ "object-tests/batch/many-0340.txt",
+ "object-tests/batch/many-0341.txt",
+ "object-tests/batch/many-0342.txt",
+ "object-tests/batch/many-0343.txt",
+ "object-tests/batch/many-0344.txt",
+ "object-tests/batch/many-0345.txt",
+ "object-tests/batch/many-0346.txt",
+ "object-tests/batch/many-0347.txt",
+ "object-tests/batch/many-0348.txt",
+ "object-tests/batch/many-0349.txt",
+ "object-tests/batch/many-0350.txt",
+ "object-tests/batch/many-0351.txt",
+ "object-tests/batch/many-0352.txt",
+ "object-tests/batch/many-0353.txt",
+ "object-tests/batch/many-0354.txt",
+ "object-tests/batch/many-0355.txt",
+ "object-tests/batch/many-0356.txt",
+ "object-tests/batch/many-0357.txt",
+ "object-tests/batch/many-0358.txt",
+ "object-tests/batch/many-0359.txt",
+ "object-tests/batch/many-0360.txt",
+ "object-tests/batch/many-0361.txt",
+ "object-tests/batch/many-0362.txt",
+ "object-tests/batch/many-0363.txt",
+ "object-tests/batch/many-0364.txt",
+ "object-tests/batch/many-0365.txt",
+ "object-tests/batch/many-0366.txt",
+ "object-tests/batch/many-0367.txt",
+ "object-tests/batch/many-0368.txt",
+ "object-tests/batch/many-0369.txt",
+ "object-tests/batch/many-0370.txt",
+ "object-tests/batch/many-0371.txt",
+ "object-tests/batch/many-0372.txt",
+ "object-tests/batch/many-0373.txt",
+ "object-tests/batch/many-0374.txt",
+ "object-tests/batch/many-0375.txt",
+ "object-tests/batch/many-0376.txt",
+ "object-tests/batch/many-0377.txt",
+ "object-tests/batch/many-0378.txt",
+ "object-tests/batch/many-0379.txt",
+ "object-tests/batch/many-0380.txt",
+ "object-tests/batch/many-0381.txt",
+ "object-tests/batch/many-0382.txt",
+ "object-tests/batch/many-0383.txt",
+ "object-tests/batch/many-0384.txt",
+ "object-tests/batch/many-0385.txt",
+ "object-tests/batch/many-0386.txt",
+ "object-tests/batch/many-0387.txt",
+ "object-tests/batch/many-0388.txt",
+ "object-tests/batch/many-0389.txt",
+ "object-tests/batch/many-0390.txt",
+ "object-tests/batch/many-0391.txt",
+ "object-tests/batch/many-0392.txt",
+ "object-tests/batch/many-0393.txt",
+ "object-tests/batch/many-0394.txt",
+ "object-tests/batch/many-0395.txt",
+ "object-tests/batch/many-0396.txt",
+ "object-tests/batch/many-0397.txt",
+ "object-tests/batch/many-0398.txt",
+ "object-tests/batch/many-0399.txt",
+ "object-tests/batch/many-0400.txt",
+ "object-tests/batch/many-0401.txt",
+ "object-tests/batch/many-0402.txt",
+ "object-tests/batch/many-0403.txt",
+ "object-tests/batch/many-0404.txt",
+ "object-tests/batch/many-0405.txt",
+ "object-tests/batch/many-0406.txt",
+ "object-tests/batch/many-0407.txt",
+ "object-tests/batch/many-0408.txt",
+ "object-tests/batch/many-0409.txt",
+ "object-tests/batch/many-0410.txt",
+ "object-tests/batch/many-0411.txt",
+ "object-tests/batch/many-0412.txt",
+ "object-tests/batch/many-0413.txt",
+ "object-tests/batch/many-0414.txt",
+ "object-tests/batch/many-0415.txt",
+ "object-tests/batch/many-0416.txt",
+ "object-tests/batch/many-0417.txt",
+ "object-tests/batch/many-0418.txt",
+ "object-tests/batch/many-0419.txt",
+ "object-tests/batch/many-0420.txt",
+ "object-tests/batch/many-0421.txt",
+ "object-tests/batch/many-0422.txt",
+ "object-tests/batch/many-0423.txt",
+ "object-tests/batch/many-0424.txt",
+ "object-tests/batch/many-0425.txt",
+ "object-tests/batch/many-0426.txt",
+ "object-tests/batch/many-0427.txt",
+ "object-tests/batch/many-0428.txt",
+ "object-tests/batch/many-0429.txt",
+ "object-tests/batch/many-0430.txt",
+ "object-tests/batch/many-0431.txt",
+ "object-tests/batch/many-0432.txt",
+ "object-tests/batch/many-0433.txt",
+ "object-tests/batch/many-0434.txt",
+ "object-tests/batch/many-0435.txt",
+ "object-tests/batch/many-0436.txt",
+ "object-tests/batch/many-0437.txt",
+ "object-tests/batch/many-0438.txt",
+ "object-tests/batch/many-0439.txt",
+ "object-tests/batch/many-0440.txt",
+ "object-tests/batch/many-0441.txt",
+ "object-tests/batch/many-0442.txt",
+ "object-tests/batch/many-0443.txt",
+ "object-tests/batch/many-0444.txt",
+ "object-tests/batch/many-0445.txt",
+ "object-tests/batch/many-0446.txt",
+ "object-tests/batch/many-0447.txt",
+ "object-tests/batch/many-0448.txt",
+ "object-tests/batch/many-0449.txt",
+ "object-tests/batch/many-0450.txt",
+ "object-tests/batch/many-0451.txt",
+ "object-tests/batch/many-0452.txt",
+ "object-tests/batch/many-0453.txt",
+ "object-tests/batch/many-0454.txt",
+ "object-tests/batch/many-0455.txt",
+ "object-tests/batch/many-0456.txt",
+ "object-tests/batch/many-0457.txt",
+ "object-tests/batch/many-0458.txt",
+ "object-tests/batch/many-0459.txt",
+ "object-tests/batch/many-0460.txt",
+ "object-tests/batch/many-0461.txt",
+ "object-tests/batch/many-0462.txt",
+ "object-tests/batch/many-0463.txt",
+ "object-tests/batch/many-0464.txt",
+ "object-tests/batch/many-0465.txt",
+ "object-tests/batch/many-0466.txt",
+ "object-tests/batch/many-0467.txt",
+ "object-tests/batch/many-0468.txt",
+ "object-tests/batch/many-0469.txt",
+ "object-tests/batch/many-0470.txt",
+ "object-tests/batch/many-0471.txt",
+ "object-tests/batch/many-0472.txt",
+ "object-tests/batch/many-0473.txt",
+ "object-tests/batch/many-0474.txt",
+ "object-tests/batch/many-0475.txt",
+ "object-tests/batch/many-0476.txt",
+ "object-tests/batch/many-0477.txt",
+ "object-tests/batch/many-0478.txt",
+ "object-tests/batch/many-0479.txt",
+ "object-tests/batch/many-0480.txt",
+ "object-tests/batch/many-0481.txt",
+ "object-tests/batch/many-0482.txt",
+ "object-tests/batch/many-0483.txt",
+ "object-tests/batch/many-0484.txt",
+ "object-tests/batch/many-0485.txt",
+ "object-tests/batch/many-0486.txt",
+ "object-tests/batch/many-0487.txt",
+ "object-tests/batch/many-0488.txt",
+ "object-tests/batch/many-0489.txt",
+ "object-tests/batch/many-0490.txt",
+ "object-tests/batch/many-0491.txt",
+ "object-tests/batch/many-0492.txt",
+ "object-tests/batch/many-0493.txt",
+ "object-tests/batch/many-0494.txt",
+ "object-tests/batch/many-0495.txt",
+ "object-tests/batch/many-0496.txt",
+ "object-tests/batch/many-0497.txt",
+ "object-tests/batch/many-0498.txt",
+ "object-tests/batch/many-0499.txt",
+ "object-tests/batch/many-0500.txt",
+ "object-tests/batch/many-0501.txt",
+ "object-tests/batch/many-0502.txt",
+ "object-tests/batch/many-0503.txt",
+ "object-tests/batch/many-0504.txt",
+ "object-tests/batch/many-0505.txt",
+ "object-tests/batch/many-0506.txt",
+ "object-tests/batch/many-0507.txt",
+ "object-tests/batch/many-0508.txt",
+ "object-tests/batch/many-0509.txt",
+ "object-tests/batch/many-0510.txt",
+ "object-tests/batch/many-0511.txt",
+ "object-tests/batch/many-0512.txt",
+ "object-tests/batch/many-0513.txt",
+ "object-tests/batch/many-0514.txt",
+ "object-tests/batch/many-0515.txt",
+ "object-tests/batch/many-0516.txt",
+ "object-tests/batch/many-0517.txt",
+ "object-tests/batch/many-0518.txt",
+ "object-tests/batch/many-0519.txt",
+ "object-tests/batch/many-0520.txt",
+ "object-tests/batch/many-0521.txt",
+ "object-tests/batch/many-0522.txt",
+ "object-tests/batch/many-0523.txt",
+ "object-tests/batch/many-0524.txt",
+ "object-tests/batch/many-0525.txt",
+ "object-tests/batch/many-0526.txt",
+ "object-tests/batch/many-0527.txt",
+ "object-tests/batch/many-0528.txt",
+ "object-tests/batch/many-0529.txt",
+ "object-tests/batch/many-0530.txt",
+ "object-tests/batch/many-0531.txt",
+ "object-tests/batch/many-0532.txt",
+ "object-tests/batch/many-0533.txt",
+ "object-tests/batch/many-0534.txt",
+ "object-tests/batch/many-0535.txt",
+ "object-tests/batch/many-0536.txt",
+ "object-tests/batch/many-0537.txt",
+ "object-tests/batch/many-0538.txt",
+ "object-tests/batch/many-0539.txt",
+ "object-tests/batch/many-0540.txt",
+ "object-tests/batch/many-0541.txt",
+ "object-tests/batch/many-0542.txt",
+ "object-tests/batch/many-0543.txt",
+ "object-tests/batch/many-0544.txt",
+ "object-tests/batch/many-0545.txt",
+ "object-tests/batch/many-0546.txt",
+ "object-tests/batch/many-0547.txt",
+ "object-tests/batch/many-0548.txt",
+ "object-tests/batch/many-0549.txt",
+ "object-tests/batch/many-0550.txt",
+ "object-tests/batch/many-0551.txt",
+ "object-tests/batch/many-0552.txt",
+ "object-tests/batch/many-0553.txt",
+ "object-tests/batch/many-0554.txt",
+ "object-tests/batch/many-0555.txt",
+ "object-tests/batch/many-0556.txt",
+ "object-tests/batch/many-0557.txt",
+ "object-tests/batch/many-0558.txt",
+ "object-tests/batch/many-0559.txt",
+ "object-tests/batch/many-0560.txt",
+ "object-tests/batch/many-0561.txt",
+ "object-tests/batch/many-0562.txt",
+ "object-tests/batch/many-0563.txt",
+ "object-tests/batch/many-0564.txt",
+ "object-tests/batch/many-0565.txt",
+ "object-tests/batch/many-0566.txt",
+ "object-tests/batch/many-0567.txt",
+ "object-tests/batch/many-0568.txt",
+ "object-tests/batch/many-0569.txt",
+ "object-tests/batch/many-0570.txt",
+ "object-tests/batch/many-0571.txt",
+ "object-tests/batch/many-0572.txt",
+ "object-tests/batch/many-0573.txt",
+ "object-tests/batch/many-0574.txt",
+ "object-tests/batch/many-0575.txt",
+ "object-tests/batch/many-0576.txt",
+ "object-tests/batch/many-0577.txt",
+ "object-tests/batch/many-0578.txt",
+ "object-tests/batch/many-0579.txt",
+ "object-tests/batch/many-0580.txt",
+ "object-tests/batch/many-0581.txt",
+ "object-tests/batch/many-0582.txt",
+ "object-tests/batch/many-0583.txt",
+ "object-tests/batch/many-0584.txt",
+ "object-tests/batch/many-0585.txt",
+ "object-tests/batch/many-0586.txt",
+ "object-tests/batch/many-0587.txt",
+ "object-tests/batch/many-0588.txt",
+ "object-tests/batch/many-0589.txt",
+ "object-tests/batch/many-0590.txt",
+ "object-tests/batch/many-0591.txt",
+ "object-tests/batch/many-0592.txt",
+ "object-tests/batch/many-0593.txt",
+ "object-tests/batch/many-0594.txt",
+ "object-tests/batch/many-0595.txt",
+ "object-tests/batch/many-0596.txt",
+ "object-tests/batch/many-0597.txt",
+ "object-tests/batch/many-0598.txt",
+ "object-tests/batch/many-0599.txt",
+ "object-tests/batch/many-0600.txt",
+ "object-tests/batch/many-0601.txt",
+ "object-tests/batch/many-0602.txt",
+ "object-tests/batch/many-0603.txt",
+ "object-tests/batch/many-0604.txt",
+ "object-tests/batch/many-0605.txt",
+ "object-tests/batch/many-0606.txt",
+ "object-tests/batch/many-0607.txt",
+ "object-tests/batch/many-0608.txt",
+ "object-tests/batch/many-0609.txt",
+ "object-tests/batch/many-0610.txt",
+ "object-tests/batch/many-0611.txt",
+ "object-tests/batch/many-0612.txt",
+ "object-tests/batch/many-0613.txt",
+ "object-tests/batch/many-0614.txt",
+ "object-tests/batch/many-0615.txt",
+ "object-tests/batch/many-0616.txt",
+ "object-tests/batch/many-0617.txt",
+ "object-tests/batch/many-0618.txt",
+ "object-tests/batch/many-0619.txt",
+ "object-tests/batch/many-0620.txt",
+ "object-tests/batch/many-0621.txt",
+ "object-tests/batch/many-0622.txt",
+ "object-tests/batch/many-0623.txt",
+ "object-tests/batch/many-0624.txt",
+ "object-tests/batch/many-0625.txt",
+ "object-tests/batch/many-0626.txt",
+ "object-tests/batch/many-0627.txt",
+ "object-tests/batch/many-0628.txt",
+ "object-tests/batch/many-0629.txt",
+ "object-tests/batch/many-0630.txt",
+ "object-tests/batch/many-0631.txt",
+ "object-tests/batch/many-0632.txt",
+ "object-tests/batch/many-0633.txt",
+ "object-tests/batch/many-0634.txt",
+ "object-tests/batch/many-0635.txt",
+ "object-tests/batch/many-0636.txt",
+ "object-tests/batch/many-0637.txt",
+ "object-tests/batch/many-0638.txt",
+ "object-tests/batch/many-0639.txt",
+ "object-tests/batch/many-0640.txt",
+ "object-tests/batch/many-0641.txt",
+ "object-tests/batch/many-0642.txt",
+ "object-tests/batch/many-0643.txt",
+ "object-tests/batch/many-0644.txt",
+ "object-tests/batch/many-0645.txt",
+ "object-tests/batch/many-0646.txt",
+ "object-tests/batch/many-0647.txt",
+ "object-tests/batch/many-0648.txt",
+ "object-tests/batch/many-0649.txt",
+ "object-tests/batch/many-0650.txt",
+ "object-tests/batch/many-0651.txt",
+ "object-tests/batch/many-0652.txt",
+ "object-tests/batch/many-0653.txt",
+ "object-tests/batch/many-0654.txt",
+ "object-tests/batch/many-0655.txt",
+ "object-tests/batch/many-0656.txt",
+ "object-tests/batch/many-0657.txt",
+ "object-tests/batch/many-0658.txt",
+ "object-tests/batch/many-0659.txt",
+ "object-tests/batch/many-0660.txt",
+ "object-tests/batch/many-0661.txt",
+ "object-tests/batch/many-0662.txt",
+ "object-tests/batch/many-0663.txt",
+ "object-tests/batch/many-0664.txt",
+ "object-tests/batch/many-0665.txt",
+ "object-tests/batch/many-0666.txt",
+ "object-tests/batch/many-0667.txt",
+ "object-tests/batch/many-0668.txt",
+ "object-tests/batch/many-0669.txt",
+ "object-tests/batch/many-0670.txt",
+ "object-tests/batch/many-0671.txt",
+ "object-tests/batch/many-0672.txt",
+ "object-tests/batch/many-0673.txt",
+ "object-tests/batch/many-0674.txt",
+ "object-tests/batch/many-0675.txt",
+ "object-tests/batch/many-0676.txt",
+ "object-tests/batch/many-0677.txt",
+ "object-tests/batch/many-0678.txt",
+ "object-tests/batch/many-0679.txt",
+ "object-tests/batch/many-0680.txt",
+ "object-tests/batch/many-0681.txt",
+ "object-tests/batch/many-0682.txt",
+ "object-tests/batch/many-0683.txt",
+ "object-tests/batch/many-0684.txt",
+ "object-tests/batch/many-0685.txt",
+ "object-tests/batch/many-0686.txt",
+ "object-tests/batch/many-0687.txt",
+ "object-tests/batch/many-0688.txt",
+ "object-tests/batch/many-0689.txt",
+ "object-tests/batch/many-0690.txt",
+ "object-tests/batch/many-0691.txt",
+ "object-tests/batch/many-0692.txt",
+ "object-tests/batch/many-0693.txt",
+ "object-tests/batch/many-0694.txt",
+ "object-tests/batch/many-0695.txt",
+ "object-tests/batch/many-0696.txt",
+ "object-tests/batch/many-0697.txt",
+ "object-tests/batch/many-0698.txt",
+ "object-tests/batch/many-0699.txt",
+ "object-tests/batch/many-0700.txt",
+ "object-tests/batch/many-0701.txt",
+ "object-tests/batch/many-0702.txt",
+ "object-tests/batch/many-0703.txt",
+ "object-tests/batch/many-0704.txt",
+ "object-tests/batch/many-0705.txt",
+ "object-tests/batch/many-0706.txt",
+ "object-tests/batch/many-0707.txt",
+ "object-tests/batch/many-0708.txt",
+ "object-tests/batch/many-0709.txt",
+ "object-tests/batch/many-0710.txt",
+ "object-tests/batch/many-0711.txt",
+ "object-tests/batch/many-0712.txt",
+ "object-tests/batch/many-0713.txt",
+ "object-tests/batch/many-0714.txt",
+ "object-tests/batch/many-0715.txt",
+ "object-tests/batch/many-0716.txt",
+ "object-tests/batch/many-0717.txt",
+ "object-tests/batch/many-0718.txt",
+ "object-tests/batch/many-0719.txt",
+ "object-tests/batch/many-0720.txt",
+ "object-tests/batch/many-0721.txt",
+ "object-tests/batch/many-0722.txt",
+ "object-tests/batch/many-0723.txt",
+ "object-tests/batch/many-0724.txt",
+ "object-tests/batch/many-0725.txt",
+ "object-tests/batch/many-0726.txt",
+ "object-tests/batch/many-0727.txt",
+ "object-tests/batch/many-0728.txt",
+ "object-tests/batch/many-0729.txt",
+ "object-tests/batch/many-0730.txt",
+ "object-tests/batch/many-0731.txt",
+ "object-tests/batch/many-0732.txt",
+ "object-tests/batch/many-0733.txt",
+ "object-tests/batch/many-0734.txt",
+ "object-tests/batch/many-0735.txt",
+ "object-tests/batch/many-0736.txt",
+ "object-tests/batch/many-0737.txt",
+ "object-tests/batch/many-0738.txt",
+ "object-tests/batch/many-0739.txt",
+ "object-tests/batch/many-0740.txt",
+ "object-tests/batch/many-0741.txt",
+ "object-tests/batch/many-0742.txt",
+ "object-tests/batch/many-0743.txt",
+ "object-tests/batch/many-0744.txt",
+ "object-tests/batch/many-0745.txt",
+ "object-tests/batch/many-0746.txt",
+ "object-tests/batch/many-0747.txt",
+ "object-tests/batch/many-0748.txt",
+ "object-tests/batch/many-0749.txt",
+ "object-tests/batch/many-0750.txt",
+ "object-tests/batch/many-0751.txt",
+ "object-tests/batch/many-0752.txt",
+ "object-tests/batch/many-0753.txt",
+ "object-tests/batch/many-0754.txt",
+ "object-tests/batch/many-0755.txt",
+ "object-tests/batch/many-0756.txt",
+ "object-tests/batch/many-0757.txt",
+ "object-tests/batch/many-0758.txt",
+ "object-tests/batch/many-0759.txt",
+ "object-tests/batch/many-0760.txt",
+ "object-tests/batch/many-0761.txt",
+ "object-tests/batch/many-0762.txt",
+ "object-tests/batch/many-0763.txt",
+ "object-tests/batch/many-0764.txt",
+ "object-tests/batch/many-0765.txt",
+ "object-tests/batch/many-0766.txt",
+ "object-tests/batch/many-0767.txt",
+ "object-tests/batch/many-0768.txt",
+ "object-tests/batch/many-0769.txt",
+ "object-tests/batch/many-0770.txt",
+ "object-tests/batch/many-0771.txt",
+ "object-tests/batch/many-0772.txt",
+ "object-tests/batch/many-0773.txt",
+ "object-tests/batch/many-0774.txt",
+ "object-tests/batch/many-0775.txt",
+ "object-tests/batch/many-0776.txt",
+ "object-tests/batch/many-0777.txt",
+ "object-tests/batch/many-0778.txt",
+ "object-tests/batch/many-0779.txt",
+ "object-tests/batch/many-0780.txt",
+ "object-tests/batch/many-0781.txt",
+ "object-tests/batch/many-0782.txt",
+ "object-tests/batch/many-0783.txt",
+ "object-tests/batch/many-0784.txt",
+ "object-tests/batch/many-0785.txt",
+ "object-tests/batch/many-0786.txt",
+ "object-tests/batch/many-0787.txt",
+ "object-tests/batch/many-0788.txt",
+ "object-tests/batch/many-0789.txt",
+ "object-tests/batch/many-0790.txt",
+ "object-tests/batch/many-0791.txt",
+ "object-tests/batch/many-0792.txt",
+ "object-tests/batch/many-0793.txt",
+ "object-tests/batch/many-0794.txt",
+ "object-tests/batch/many-0795.txt",
+ "object-tests/batch/many-0796.txt",
+ "object-tests/batch/many-0797.txt",
+ "object-tests/batch/many-0798.txt",
+ "object-tests/batch/many-0799.txt",
+ "object-tests/batch/many-0800.txt",
+ "object-tests/batch/many-0801.txt",
+ "object-tests/batch/many-0802.txt",
+ "object-tests/batch/many-0803.txt",
+ "object-tests/batch/many-0804.txt",
+ "object-tests/batch/many-0805.txt",
+ "object-tests/batch/many-0806.txt",
+ "object-tests/batch/many-0807.txt",
+ "object-tests/batch/many-0808.txt",
+ "object-tests/batch/many-0809.txt",
+ "object-tests/batch/many-0810.txt",
+ "object-tests/batch/many-0811.txt",
+ "object-tests/batch/many-0812.txt",
+ "object-tests/batch/many-0813.txt",
+ "object-tests/batch/many-0814.txt",
+ "object-tests/batch/many-0815.txt",
+ "object-tests/batch/many-0816.txt",
+ "object-tests/batch/many-0817.txt",
+ "object-tests/batch/many-0818.txt",
+ "object-tests/batch/many-0819.txt",
+ "object-tests/batch/many-0820.txt",
+ "object-tests/batch/many-0821.txt",
+ "object-tests/batch/many-0822.txt",
+ "object-tests/batch/many-0823.txt",
+ "object-tests/batch/many-0824.txt",
+ "object-tests/batch/many-0825.txt",
+ "object-tests/batch/many-0826.txt",
+ "object-tests/batch/many-0827.txt",
+ "object-tests/batch/many-0828.txt",
+ "object-tests/batch/many-0829.txt",
+ "object-tests/batch/many-0830.txt",
+ "object-tests/batch/many-0831.txt",
+ "object-tests/batch/many-0832.txt",
+ "object-tests/batch/many-0833.txt",
+ "object-tests/batch/many-0834.txt",
+ "object-tests/batch/many-0835.txt",
+ "object-tests/batch/many-0836.txt",
+ "object-tests/batch/many-0837.txt",
+ "object-tests/batch/many-0838.txt",
+ "object-tests/batch/many-0839.txt",
+ "object-tests/batch/many-0840.txt",
+ "object-tests/batch/many-0841.txt",
+ "object-tests/batch/many-0842.txt",
+ "object-tests/batch/many-0843.txt",
+ "object-tests/batch/many-0844.txt",
+ "object-tests/batch/many-0845.txt",
+ "object-tests/batch/many-0846.txt",
+ "object-tests/batch/many-0847.txt",
+ "object-tests/batch/many-0848.txt",
+ "object-tests/batch/many-0849.txt",
+ "object-tests/batch/many-0850.txt",
+ "object-tests/batch/many-0851.txt",
+ "object-tests/batch/many-0852.txt",
+ "object-tests/batch/many-0853.txt",
+ "object-tests/batch/many-0854.txt",
+ "object-tests/batch/many-0855.txt",
+ "object-tests/batch/many-0856.txt",
+ "object-tests/batch/many-0857.txt",
+ "object-tests/batch/many-0858.txt",
+ "object-tests/batch/many-0859.txt",
+ "object-tests/batch/many-0860.txt",
+ "object-tests/batch/many-0861.txt",
+ "object-tests/batch/many-0862.txt",
+ "object-tests/batch/many-0863.txt",
+ "object-tests/batch/many-0864.txt",
+ "object-tests/batch/many-0865.txt",
+ "object-tests/batch/many-0866.txt",
+ "object-tests/batch/many-0867.txt",
+ "object-tests/batch/many-0868.txt",
+ "object-tests/batch/many-0869.txt",
+ "object-tests/batch/many-0870.txt",
+ "object-tests/batch/many-0871.txt",
+ "object-tests/batch/many-0872.txt",
+ "object-tests/batch/many-0873.txt",
+ "object-tests/batch/many-0874.txt",
+ "object-tests/batch/many-0875.txt",
+ "object-tests/batch/many-0876.txt",
+ "object-tests/batch/many-0877.txt",
+ "object-tests/batch/many-0878.txt",
+ "object-tests/batch/many-0879.txt",
+ "object-tests/batch/many-0880.txt",
+ "object-tests/batch/many-0881.txt",
+ "object-tests/batch/many-0882.txt",
+ "object-tests/batch/many-0883.txt",
+ "object-tests/batch/many-0884.txt",
+ "object-tests/batch/many-0885.txt",
+ "object-tests/batch/many-0886.txt",
+ "object-tests/batch/many-0887.txt",
+ "object-tests/batch/many-0888.txt",
+ "object-tests/batch/many-0889.txt",
+ "object-tests/batch/many-0890.txt",
+ "object-tests/batch/many-0891.txt",
+ "object-tests/batch/many-0892.txt",
+ "object-tests/batch/many-0893.txt",
+ "object-tests/batch/many-0894.txt",
+ "object-tests/batch/many-0895.txt",
+ "object-tests/batch/many-0896.txt",
+ "object-tests/batch/many-0897.txt",
+ "object-tests/batch/many-0898.txt",
+ "object-tests/batch/many-0899.txt",
+ "object-tests/batch/many-0900.txt",
+ "object-tests/batch/many-0901.txt",
+ "object-tests/batch/many-0902.txt",
+ "object-tests/batch/many-0903.txt",
+ "object-tests/batch/many-0904.txt",
+ "object-tests/batch/many-0905.txt",
+ "object-tests/batch/many-0906.txt",
+ "object-tests/batch/many-0907.txt",
+ "object-tests/batch/many-0908.txt",
+ "object-tests/batch/many-0909.txt",
+ "object-tests/batch/many-0910.txt",
+ "object-tests/batch/many-0911.txt",
+ "object-tests/batch/many-0912.txt",
+ "object-tests/batch/many-0913.txt",
+ "object-tests/batch/many-0914.txt",
+ "object-tests/batch/many-0915.txt",
+ "object-tests/batch/many-0916.txt",
+ "object-tests/batch/many-0917.txt",
+ "object-tests/batch/many-0918.txt",
+ "object-tests/batch/many-0919.txt",
+ "object-tests/batch/many-0920.txt",
+ "object-tests/batch/many-0921.txt",
+ "object-tests/batch/many-0922.txt",
+ "object-tests/batch/many-0923.txt",
+ "object-tests/batch/many-0924.txt",
+ "object-tests/batch/many-0925.txt",
+ "object-tests/batch/many-0926.txt",
+ "object-tests/batch/many-0927.txt",
+ "object-tests/batch/many-0928.txt",
+ "object-tests/batch/many-0929.txt",
+ "object-tests/batch/many-0930.txt",
+ "object-tests/batch/many-0931.txt",
+ "object-tests/batch/many-0932.txt",
+ "object-tests/batch/many-0933.txt",
+ "object-tests/batch/many-0934.txt",
+ "object-tests/batch/many-0935.txt",
+ "object-tests/batch/many-0936.txt",
+ "object-tests/batch/many-0937.txt",
+ "object-tests/batch/many-0938.txt",
+ "object-tests/batch/many-0939.txt",
+ "object-tests/batch/many-0940.txt",
+ "object-tests/batch/many-0941.txt",
+ "object-tests/batch/many-0942.txt",
+ "object-tests/batch/many-0943.txt",
+ "object-tests/batch/many-0944.txt",
+ "object-tests/batch/many-0945.txt",
+ "object-tests/batch/many-0946.txt",
+ "object-tests/batch/many-0947.txt",
+ "object-tests/batch/many-0948.txt",
+ "object-tests/batch/many-0949.txt",
+ "object-tests/batch/many-0950.txt",
+ "object-tests/batch/many-0951.txt",
+ "object-tests/batch/many-0952.txt",
+ "object-tests/batch/many-0953.txt",
+ "object-tests/batch/many-0954.txt",
+ "object-tests/batch/many-0955.txt",
+ "object-tests/batch/many-0956.txt",
+ "object-tests/batch/many-0957.txt",
+ "object-tests/batch/many-0958.txt",
+ "object-tests/batch/many-0959.txt",
+ "object-tests/batch/many-0960.txt",
+ "object-tests/batch/many-0961.txt",
+ "object-tests/batch/many-0962.txt",
+ "object-tests/batch/many-0963.txt",
+ "object-tests/batch/many-0964.txt",
+ "object-tests/batch/many-0965.txt",
+ "object-tests/batch/many-0966.txt",
+ "object-tests/batch/many-0967.txt",
+ "object-tests/batch/many-0968.txt",
+ "object-tests/batch/many-0969.txt",
+ "object-tests/batch/many-0970.txt",
+ "object-tests/batch/many-0971.txt",
+ "object-tests/batch/many-0972.txt",
+ "object-tests/batch/many-0973.txt",
+ "object-tests/batch/many-0974.txt",
+ "object-tests/batch/many-0975.txt",
+ "object-tests/batch/many-0976.txt",
+ "object-tests/batch/many-0977.txt",
+ "object-tests/batch/many-0978.txt",
+ "object-tests/batch/many-0979.txt",
+ "object-tests/batch/many-0980.txt",
+ "object-tests/batch/many-0981.txt",
+ "object-tests/batch/many-0982.txt",
+ "object-tests/batch/many-0983.txt",
+ "object-tests/batch/many-0984.txt",
+ "object-tests/batch/many-0985.txt",
+ "object-tests/batch/many-0986.txt",
+ "object-tests/batch/many-0987.txt",
+ "object-tests/batch/many-0988.txt",
+ "object-tests/batch/many-0989.txt",
+ "object-tests/batch/many-0990.txt",
+ "object-tests/batch/many-0991.txt",
+ "object-tests/batch/many-0992.txt",
+ "object-tests/batch/many-0993.txt",
+ "object-tests/batch/many-0994.txt",
+ "object-tests/batch/many-0995.txt",
+ "object-tests/batch/many-0996.txt",
+ "object-tests/batch/many-0997.txt",
+ "object-tests/batch/many-0998.txt",
+ "object-tests/batch/many-0999.txt"
+ ],
+ "op": "delete_many"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -115787,7 +154940,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -115795,23 +154948,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/small.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-132cb4a5de9d\"2\"fixture-2cab82eb728e\""
+ "value": "/"
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/09837ae2020c="
+ "value": ""
}
},
{
@@ -115823,22 +154968,122 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/delete",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc64nvme",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nobject-tests/batch/many-0000.txtobject-tests/batch/many-0001.txtobject-tests/batch/many-0002.txtobject-tests/batch/many-0003.txtobject-tests/batch/many-0004.txtobject-tests/batch/many-0005.txtobject-tests/batch/many-0006.txtobject-tests/batch/many-0007.txtobject-tests/batch/many-0008.txtobject-tests/batch/many-0009.txtobject-tests/batch/many-0010.txtobject-tests/batch/many-0011.txtobject-tests/batch/many-0012.txtobject-tests/batch/many-0013.txtobject-tests/batch/many-0014.txtobject-tests/batch/many-0015.txtobject-tests/batch/many-0016.txtobject-tests/batch/many-0017.txtobject-tests/batch/many-0018.txtobject-tests/batch/many-0019.txtobject-tests/batch/many-0020.txtobject-tests/batch/many-0021.txtobject-tests/batch/many-0022.txtobject-tests/batch/many-0023.txtobject-tests/batch/many-0024.txtobject-tests/batch/many-0025.txtobject-tests/batch/many-0026.txtobject-tests/batch/many-0027.txtobject-tests/batch/many-0028.txtobject-tests/batch/many-0029.txtobject-tests/batch/many-0030.txtobject-tests/batch/many-0031.txtobject-tests/batch/many-0032.txtobject-tests/batch/many-0033.txtobject-tests/batch/many-0034.txtobject-tests/batch/many-0035.txtobject-tests/batch/many-0036.txtobject-tests/batch/many-0037.txtobject-tests/batch/many-0038.txtobject-tests/batch/many-0039.txtobject-tests/batch/many-0040.txtobject-tests/batch/many-0041.txtobject-tests/batch/many-0042.txtobject-tests/batch/many-0043.txtobject-tests/batch/many-0044.txtobject-tests/batch/many-0045.txtobject-tests/batch/many-0046.txtobject-tests/batch/many-0047.txtobject-tests/batch/many-0048.txtobject-tests/batch/many-0049.txtobject-tests/batch/many-0050.txtobject-tests/batch/many-0051.txtobject-tests/batch/many-0052.txtobject-tests/batch/many-0053.txtobject-tests/batch/many-0054.txtobject-tests/batch/many-0055.txtobject-tests/batch/many-0056.txtobject-tests/batch/many-0057.txtobject-tests/batch/many-0058.txtobject-tests/batch/many-0059.txtobject-tests/batch/many-0060.txtobject-tests/batch/many-0061.txtobject-tests/batch/many-0062.txtobject-tests/batch/many-0063.txtobject-tests/batch/many-0064.txtobject-tests/batch/many-0065.txtobject-tests/batch/many-0066.txtobject-tests/batch/many-0067.txtobject-tests/batch/many-0068.txtobject-tests/batch/many-0069.txtobject-tests/batch/many-0070.txtobject-tests/batch/many-0071.txtobject-tests/batch/many-0072.txtobject-tests/batch/many-0073.txtobject-tests/batch/many-0074.txtobject-tests/batch/many-0075.txtobject-tests/batch/many-0076.txtobject-tests/batch/many-0077.txtobject-tests/batch/many-0078.txtobject-tests/batch/many-0079.txtobject-tests/batch/many-0080.txtobject-tests/batch/many-0081.txtobject-tests/batch/many-0082.txtobject-tests/batch/many-0083.txtobject-tests/batch/many-0084.txtobject-tests/batch/many-0085.txtobject-tests/batch/many-0086.txtobject-tests/batch/many-0087.txtobject-tests/batch/many-0088.txtobject-tests/batch/many-0089.txtobject-tests/batch/many-0090.txtobject-tests/batch/many-0091.txtobject-tests/batch/many-0092.txtobject-tests/batch/many-0093.txtobject-tests/batch/many-0094.txtobject-tests/batch/many-0095.txtobject-tests/batch/many-0096.txtobject-tests/batch/many-0097.txtobject-tests/batch/many-0098.txtobject-tests/batch/many-0099.txtobject-tests/batch/many-0100.txtobject-tests/batch/many-0101.txtobject-tests/batch/many-0102.txtobject-tests/batch/many-0103.txtobject-tests/batch/many-0104.txtobject-tests/batch/many-0105.txtobject-tests/batch/many-0106.txtobject-tests/batch/many-0107.txtobject-tests/batch/many-0108.txtobject-tests/batch/many-0109.txtobject-tests/batch/many-0110.txtobject-tests/batch/many-0111.txtobject-tests/batch/many-0112.txtobject-tests/batch/many-0113.txtobject-tests/batch/many-0114.txtobject-tests/batch/many-0115.txtobject-tests/batch/many-0116.txtobject-tests/batch/many-0117.txtobject-tests/batch/many-0118.txtobject-tests/batch/many-0119.txtobject-tests/batch/many-0120.txtobject-tests/batch/many-0121.txtobject-tests/batch/many-0122.txtobject-tests/batch/many-0123.txtobject-tests/batch/many-0124.txtobject-tests/batch/many-0125.txtobject-tests/batch/many-0126.txtobject-tests/batch/many-0127.txtobject-tests/batch/many-0128.txtobject-tests/batch/many-0129.txtobject-tests/batch/many-0130.txtobject-tests/batch/many-0131.txtobject-tests/batch/many-0132.txtobject-tests/batch/many-0133.txtobject-tests/batch/many-0134.txtobject-tests/batch/many-0135.txtobject-tests/batch/many-0136.txtobject-tests/batch/many-0137.txtobject-tests/batch/many-0138.txtobject-tests/batch/many-0139.txtobject-tests/batch/many-0140.txtobject-tests/batch/many-0141.txtobject-tests/batch/many-0142.txtobject-tests/batch/many-0143.txtobject-tests/batch/many-0144.txtobject-tests/batch/many-0145.txtobject-tests/batch/many-0146.txtobject-tests/batch/many-0147.txtobject-tests/batch/many-0148.txtobject-tests/batch/many-0149.txtobject-tests/batch/many-0150.txtobject-tests/batch/many-0151.txtobject-tests/batch/many-0152.txtobject-tests/batch/many-0153.txtobject-tests/batch/many-0154.txtobject-tests/batch/many-0155.txtobject-tests/batch/many-0156.txtobject-tests/batch/many-0157.txtobject-tests/batch/many-0158.txtobject-tests/batch/many-0159.txtobject-tests/batch/many-0160.txtobject-tests/batch/many-0161.txtobject-tests/batch/many-0162.txtobject-tests/batch/many-0163.txtobject-tests/batch/many-0164.txtobject-tests/batch/many-0165.txtobject-tests/batch/many-0166.txtobject-tests/batch/many-0167.txtobject-tests/batch/many-0168.txtobject-tests/batch/many-0169.txtobject-tests/batch/many-0170.txtobject-tests/batch/many-0171.txtobject-tests/batch/many-0172.txtobject-tests/batch/many-0173.txtobject-tests/batch/many-0174.txtobject-tests/batch/many-0175.txtobject-tests/batch/many-0176.txtobject-tests/batch/many-0177.txtobject-tests/batch/many-0178.txtobject-tests/batch/many-0179.txtobject-tests/batch/many-0180.txtobject-tests/batch/many-0181.txtobject-tests/batch/many-0182.txtobject-tests/batch/many-0183.txtobject-tests/batch/many-0184.txtobject-tests/batch/many-0185.txtobject-tests/batch/many-0186.txtobject-tests/batch/many-0187.txtobject-tests/batch/many-0188.txtobject-tests/batch/many-0189.txtobject-tests/batch/many-0190.txtobject-tests/batch/many-0191.txtobject-tests/batch/many-0192.txtobject-tests/batch/many-0193.txtobject-tests/batch/many-0194.txtobject-tests/batch/many-0195.txtobject-tests/batch/many-0196.txtobject-tests/batch/many-0197.txtobject-tests/batch/many-0198.txtobject-tests/batch/many-0199.txtobject-tests/batch/many-0200.txtobject-tests/batch/many-0201.txtobject-tests/batch/many-0202.txtobject-tests/batch/many-0203.txtobject-tests/batch/many-0204.txtobject-tests/batch/many-0205.txtobject-tests/batch/many-0206.txtobject-tests/batch/many-0207.txtobject-tests/batch/many-0208.txtobject-tests/batch/many-0209.txtobject-tests/batch/many-0210.txtobject-tests/batch/many-0211.txtobject-tests/batch/many-0212.txtobject-tests/batch/many-0213.txtobject-tests/batch/many-0214.txtobject-tests/batch/many-0215.txtobject-tests/batch/many-0216.txtobject-tests/batch/many-0217.txtobject-tests/batch/many-0218.txtobject-tests/batch/many-0219.txtobject-tests/batch/many-0220.txtobject-tests/batch/many-0221.txtobject-tests/batch/many-0222.txtobject-tests/batch/many-0223.txtobject-tests/batch/many-0224.txtobject-tests/batch/many-0225.txtobject-tests/batch/many-0226.txtobject-tests/batch/many-0227.txtobject-tests/batch/many-0228.txtobject-tests/batch/many-0229.txtobject-tests/batch/many-0230.txtobject-tests/batch/many-0231.txtobject-tests/batch/many-0232.txtobject-tests/batch/many-0233.txtobject-tests/batch/many-0234.txtobject-tests/batch/many-0235.txtobject-tests/batch/many-0236.txtobject-tests/batch/many-0237.txtobject-tests/batch/many-0238.txtobject-tests/batch/many-0239.txtobject-tests/batch/many-0240.txtobject-tests/batch/many-0241.txtobject-tests/batch/many-0242.txtobject-tests/batch/many-0243.txtobject-tests/batch/many-0244.txtobject-tests/batch/many-0245.txtobject-tests/batch/many-0246.txtobject-tests/batch/many-0247.txtobject-tests/batch/many-0248.txtobject-tests/batch/many-0249.txtobject-tests/batch/many-0250.txtobject-tests/batch/many-0251.txtobject-tests/batch/many-0252.txtobject-tests/batch/many-0253.txtobject-tests/batch/many-0254.txtobject-tests/batch/many-0255.txtobject-tests/batch/many-0256.txtobject-tests/batch/many-0257.txtobject-tests/batch/many-0258.txtobject-tests/batch/many-0259.txtobject-tests/batch/many-0260.txtobject-tests/batch/many-0261.txtobject-tests/batch/many-0262.txtobject-tests/batch/many-0263.txtobject-tests/batch/many-0264.txtobject-tests/batch/many-0265.txtobject-tests/batch/many-0266.txtobject-tests/batch/many-0267.txtobject-tests/batch/many-0268.txtobject-tests/batch/many-0269.txtobject-tests/batch/many-0270.txtobject-tests/batch/many-0271.txtobject-tests/batch/many-0272.txtobject-tests/batch/many-0273.txtobject-tests/batch/many-0274.txtobject-tests/batch/many-0275.txtobject-tests/batch/many-0276.txtobject-tests/batch/many-0277.txtobject-tests/batch/many-0278.txtobject-tests/batch/many-0279.txtobject-tests/batch/many-0280.txtobject-tests/batch/many-0281.txtobject-tests/batch/many-0282.txtobject-tests/batch/many-0283.txtobject-tests/batch/many-0284.txtobject-tests/batch/many-0285.txtobject-tests/batch/many-0286.txtobject-tests/batch/many-0287.txtobject-tests/batch/many-0288.txtobject-tests/batch/many-0289.txtobject-tests/batch/many-0290.txtobject-tests/batch/many-0291.txtobject-tests/batch/many-0292.txtobject-tests/batch/many-0293.txtobject-tests/batch/many-0294.txtobject-tests/batch/many-0295.txtobject-tests/batch/many-0296.txtobject-tests/batch/many-0297.txtobject-tests/batch/many-0298.txtobject-tests/batch/many-0299.txtobject-tests/batch/many-0300.txtobject-tests/batch/many-0301.txtobject-tests/batch/many-0302.txtobject-tests/batch/many-0303.txtobject-tests/batch/many-0304.txtobject-tests/batch/many-0305.txtobject-tests/batch/many-0306.txtobject-tests/batch/many-0307.txtobject-tests/batch/many-0308.txtobject-tests/batch/many-0309.txtobject-tests/batch/many-0310.txtobject-tests/batch/many-0311.txtobject-tests/batch/many-0312.txtobject-tests/batch/many-0313.txtobject-tests/batch/many-0314.txtobject-tests/batch/many-0315.txtobject-tests/batch/many-0316.txtobject-tests/batch/many-0317.txtobject-tests/batch/many-0318.txtobject-tests/batch/many-0319.txtobject-tests/batch/many-0320.txtobject-tests/batch/many-0321.txtobject-tests/batch/many-0322.txtobject-tests/batch/many-0323.txtobject-tests/batch/many-0324.txtobject-tests/batch/many-0325.txtobject-tests/batch/many-0326.txtobject-tests/batch/many-0327.txtobject-tests/batch/many-0328.txtobject-tests/batch/many-0329.txtobject-tests/batch/many-0330.txtobject-tests/batch/many-0331.txtobject-tests/batch/many-0332.txtobject-tests/batch/many-0333.txtobject-tests/batch/many-0334.txtobject-tests/batch/many-0335.txtobject-tests/batch/many-0336.txtobject-tests/batch/many-0337.txtobject-tests/batch/many-0338.txtobject-tests/batch/many-0339.txtobject-tests/batch/many-0340.txtobject-tests/batch/many-0341.txtobject-tests/batch/many-0342.txtobject-tests/batch/many-0343.txtobject-tests/batch/many-0344.txtobject-tests/batch/many-0345.txtobject-tests/batch/many-0346.txtobject-tests/batch/many-0347.txtobject-tests/batch/many-0348.txtobject-tests/batch/many-0349.txtobject-tests/batch/many-0350.txtobject-tests/batch/many-0351.txtobject-tests/batch/many-0352.txtobject-tests/batch/many-0353.txtobject-tests/batch/many-0354.txtobject-tests/batch/many-0355.txtobject-tests/batch/many-0356.txtobject-tests/batch/many-0357.txtobject-tests/batch/many-0358.txtobject-tests/batch/many-0359.txtobject-tests/batch/many-0360.txtobject-tests/batch/many-0361.txtobject-tests/batch/many-0362.txtobject-tests/batch/many-0363.txtobject-tests/batch/many-0364.txtobject-tests/batch/many-0365.txtobject-tests/batch/many-0366.txtobject-tests/batch/many-0367.txtobject-tests/batch/many-0368.txtobject-tests/batch/many-0369.txtobject-tests/batch/many-0370.txtobject-tests/batch/many-0371.txtobject-tests/batch/many-0372.txtobject-tests/batch/many-0373.txtobject-tests/batch/many-0374.txtobject-tests/batch/many-0375.txtobject-tests/batch/many-0376.txtobject-tests/batch/many-0377.txtobject-tests/batch/many-0378.txtobject-tests/batch/many-0379.txtobject-tests/batch/many-0380.txtobject-tests/batch/many-0381.txtobject-tests/batch/many-0382.txtobject-tests/batch/many-0383.txtobject-tests/batch/many-0384.txtobject-tests/batch/many-0385.txtobject-tests/batch/many-0386.txtobject-tests/batch/many-0387.txtobject-tests/batch/many-0388.txtobject-tests/batch/many-0389.txtobject-tests/batch/many-0390.txtobject-tests/batch/many-0391.txtobject-tests/batch/many-0392.txtobject-tests/batch/many-0393.txtobject-tests/batch/many-0394.txtobject-tests/batch/many-0395.txtobject-tests/batch/many-0396.txtobject-tests/batch/many-0397.txtobject-tests/batch/many-0398.txtobject-tests/batch/many-0399.txtobject-tests/batch/many-0400.txtobject-tests/batch/many-0401.txtobject-tests/batch/many-0402.txtobject-tests/batch/many-0403.txtobject-tests/batch/many-0404.txtobject-tests/batch/many-0405.txtobject-tests/batch/many-0406.txtobject-tests/batch/many-0407.txtobject-tests/batch/many-0408.txtobject-tests/batch/many-0409.txtobject-tests/batch/many-0410.txtobject-tests/batch/many-0411.txtobject-tests/batch/many-0412.txtobject-tests/batch/many-0413.txtobject-tests/batch/many-0414.txtobject-tests/batch/many-0415.txtobject-tests/batch/many-0416.txtobject-tests/batch/many-0417.txtobject-tests/batch/many-0418.txtobject-tests/batch/many-0419.txtobject-tests/batch/many-0420.txtobject-tests/batch/many-0421.txtobject-tests/batch/many-0422.txtobject-tests/batch/many-0423.txtobject-tests/batch/many-0424.txtobject-tests/batch/many-0425.txtobject-tests/batch/many-0426.txtobject-tests/batch/many-0427.txtobject-tests/batch/many-0428.txtobject-tests/batch/many-0429.txtobject-tests/batch/many-0430.txtobject-tests/batch/many-0431.txtobject-tests/batch/many-0432.txtobject-tests/batch/many-0433.txtobject-tests/batch/many-0434.txtobject-tests/batch/many-0435.txtobject-tests/batch/many-0436.txtobject-tests/batch/many-0437.txtobject-tests/batch/many-0438.txtobject-tests/batch/many-0439.txtobject-tests/batch/many-0440.txtobject-tests/batch/many-0441.txtobject-tests/batch/many-0442.txtobject-tests/batch/many-0443.txtobject-tests/batch/many-0444.txtobject-tests/batch/many-0445.txtobject-tests/batch/many-0446.txtobject-tests/batch/many-0447.txtobject-tests/batch/many-0448.txtobject-tests/batch/many-0449.txtobject-tests/batch/many-0450.txtobject-tests/batch/many-0451.txtobject-tests/batch/many-0452.txtobject-tests/batch/many-0453.txtobject-tests/batch/many-0454.txtobject-tests/batch/many-0455.txtobject-tests/batch/many-0456.txtobject-tests/batch/many-0457.txtobject-tests/batch/many-0458.txtobject-tests/batch/many-0459.txtobject-tests/batch/many-0460.txtobject-tests/batch/many-0461.txtobject-tests/batch/many-0462.txtobject-tests/batch/many-0463.txtobject-tests/batch/many-0464.txtobject-tests/batch/many-0465.txtobject-tests/batch/many-0466.txtobject-tests/batch/many-0467.txtobject-tests/batch/many-0468.txtobject-tests/batch/many-0469.txtobject-tests/batch/many-0470.txtobject-tests/batch/many-0471.txtobject-tests/batch/many-0472.txtobject-tests/batch/many-0473.txtobject-tests/batch/many-0474.txtobject-tests/batch/many-0475.txtobject-tests/batch/many-0476.txtobject-tests/batch/many-0477.txtobject-tests/batch/many-0478.txtobject-tests/batch/many-0479.txtobject-tests/batch/many-0480.txtobject-tests/batch/many-0481.txtobject-tests/batch/many-0482.txtobject-tests/batch/many-0483.txtobject-tests/batch/many-0484.txtobject-tests/batch/many-0485.txtobject-tests/batch/many-0486.txtobject-tests/batch/many-0487.txtobject-tests/batch/many-0488.txtobject-tests/batch/many-0489.txtobject-tests/batch/many-0490.txtobject-tests/batch/many-0491.txtobject-tests/batch/many-0492.txtobject-tests/batch/many-0493.txtobject-tests/batch/many-0494.txtobject-tests/batch/many-0495.txtobject-tests/batch/many-0496.txtobject-tests/batch/many-0497.txtobject-tests/batch/many-0498.txtobject-tests/batch/many-0499.txtobject-tests/batch/many-0500.txtobject-tests/batch/many-0501.txtobject-tests/batch/many-0502.txtobject-tests/batch/many-0503.txtobject-tests/batch/many-0504.txtobject-tests/batch/many-0505.txtobject-tests/batch/many-0506.txtobject-tests/batch/many-0507.txtobject-tests/batch/many-0508.txtobject-tests/batch/many-0509.txtobject-tests/batch/many-0510.txtobject-tests/batch/many-0511.txtobject-tests/batch/many-0512.txtobject-tests/batch/many-0513.txtobject-tests/batch/many-0514.txtobject-tests/batch/many-0515.txtobject-tests/batch/many-0516.txtobject-tests/batch/many-0517.txtobject-tests/batch/many-0518.txtobject-tests/batch/many-0519.txtobject-tests/batch/many-0520.txtobject-tests/batch/many-0521.txtobject-tests/batch/many-0522.txtobject-tests/batch/many-0523.txtobject-tests/batch/many-0524.txtobject-tests/batch/many-0525.txtobject-tests/batch/many-0526.txtobject-tests/batch/many-0527.txtobject-tests/batch/many-0528.txtobject-tests/batch/many-0529.txtobject-tests/batch/many-0530.txtobject-tests/batch/many-0531.txtobject-tests/batch/many-0532.txtobject-tests/batch/many-0533.txtobject-tests/batch/many-0534.txtobject-tests/batch/many-0535.txtobject-tests/batch/many-0536.txtobject-tests/batch/many-0537.txtobject-tests/batch/many-0538.txtobject-tests/batch/many-0539.txtobject-tests/batch/many-0540.txtobject-tests/batch/many-0541.txtobject-tests/batch/many-0542.txtobject-tests/batch/many-0543.txtobject-tests/batch/many-0544.txtobject-tests/batch/many-0545.txtobject-tests/batch/many-0546.txtobject-tests/batch/many-0547.txtobject-tests/batch/many-0548.txtobject-tests/batch/many-0549.txtobject-tests/batch/many-0550.txtobject-tests/batch/many-0551.txtobject-tests/batch/many-0552.txtobject-tests/batch/many-0553.txtobject-tests/batch/many-0554.txtobject-tests/batch/many-0555.txtobject-tests/batch/many-0556.txtobject-tests/batch/many-0557.txtobject-tests/batch/many-0558.txtobject-tests/batch/many-0559.txtobject-tests/batch/many-0560.txtobject-tests/batch/many-0561.txtobject-tests/batch/many-0562.txtobject-tests/batch/many-0563.txtobject-tests/batch/many-0564.txtobject-tests/batch/many-0565.txtobject-tests/batch/many-0566.txtobject-tests/batch/many-0567.txtobject-tests/batch/many-0568.txtobject-tests/batch/many-0569.txtobject-tests/batch/many-0570.txtobject-tests/batch/many-0571.txtobject-tests/batch/many-0572.txtobject-tests/batch/many-0573.txtobject-tests/batch/many-0574.txtobject-tests/batch/many-0575.txtobject-tests/batch/many-0576.txtobject-tests/batch/many-0577.txtobject-tests/batch/many-0578.txtobject-tests/batch/many-0579.txtobject-tests/batch/many-0580.txtobject-tests/batch/many-0581.txtobject-tests/batch/many-0582.txtobject-tests/batch/many-0583.txtobject-tests/batch/many-0584.txtobject-tests/batch/many-0585.txtobject-tests/batch/many-0586.txtobject-tests/batch/many-0587.txtobject-tests/batch/many-0588.txtobject-tests/batch/many-0589.txtobject-tests/batch/many-0590.txtobject-tests/batch/many-0591.txtobject-tests/batch/many-0592.txtobject-tests/batch/many-0593.txtobject-tests/batch/many-0594.txtobject-tests/batch/many-0595.txtobject-tests/batch/many-0596.txtobject-tests/batch/many-0597.txtobject-tests/batch/many-0598.txtobject-tests/batch/many-0599.txtobject-tests/batch/many-0600.txtobject-tests/batch/many-0601.txtobject-tests/batch/many-0602.txtobject-tests/batch/many-0603.txtobject-tests/batch/many-0604.txtobject-tests/batch/many-0605.txtobject-tests/batch/many-0606.txtobject-tests/batch/many-0607.txtobject-tests/batch/many-0608.txtobject-tests/batch/many-0609.txtobject-tests/batch/many-0610.txtobject-tests/batch/many-0611.txtobject-tests/batch/many-0612.txtobject-tests/batch/many-0613.txtobject-tests/batch/many-0614.txtobject-tests/batch/many-0615.txtobject-tests/batch/many-0616.txtobject-tests/batch/many-0617.txtobject-tests/batch/many-0618.txtobject-tests/batch/many-0619.txtobject-tests/batch/many-0620.txtobject-tests/batch/many-0621.txtobject-tests/batch/many-0622.txtobject-tests/batch/many-0623.txtobject-tests/batch/many-0624.txtobject-tests/batch/many-0625.txtobject-tests/batch/many-0626.txtobject-tests/batch/many-0627.txtobject-tests/batch/many-0628.txtobject-tests/batch/many-0629.txtobject-tests/batch/many-0630.txtobject-tests/batch/many-0631.txtobject-tests/batch/many-0632.txtobject-tests/batch/many-0633.txtobject-tests/batch/many-0634.txtobject-tests/batch/many-0635.txtobject-tests/batch/many-0636.txtobject-tests/batch/many-0637.txtobject-tests/batch/many-0638.txtobject-tests/batch/many-0639.txtobject-tests/batch/many-0640.txtobject-tests/batch/many-0641.txtobject-tests/batch/many-0642.txtobject-tests/batch/many-0643.txtobject-tests/batch/many-0644.txtobject-tests/batch/many-0645.txtobject-tests/batch/many-0646.txtobject-tests/batch/many-0647.txtobject-tests/batch/many-0648.txtobject-tests/batch/many-0649.txtobject-tests/batch/many-0650.txtobject-tests/batch/many-0651.txtobject-tests/batch/many-0652.txtobject-tests/batch/many-0653.txtobject-tests/batch/many-0654.txtobject-tests/batch/many-0655.txtobject-tests/batch/many-0656.txtobject-tests/batch/many-0657.txtobject-tests/batch/many-0658.txtobject-tests/batch/many-0659.txtobject-tests/batch/many-0660.txtobject-tests/batch/many-0661.txtobject-tests/batch/many-0662.txtobject-tests/batch/many-0663.txtobject-tests/batch/many-0664.txtobject-tests/batch/many-0665.txtobject-tests/batch/many-0666.txtobject-tests/batch/many-0667.txtobject-tests/batch/many-0668.txtobject-tests/batch/many-0669.txtobject-tests/batch/many-0670.txtobject-tests/batch/many-0671.txtobject-tests/batch/many-0672.txtobject-tests/batch/many-0673.txtobject-tests/batch/many-0674.txtobject-tests/batch/many-0675.txtobject-tests/batch/many-0676.txtobject-tests/batch/many-0677.txtobject-tests/batch/many-0678.txtobject-tests/batch/many-0679.txtobject-tests/batch/many-0680.txtobject-tests/batch/many-0681.txtobject-tests/batch/many-0682.txtobject-tests/batch/many-0683.txtobject-tests/batch/many-0684.txtobject-tests/batch/many-0685.txtobject-tests/batch/many-0686.txtobject-tests/batch/many-0687.txtobject-tests/batch/many-0688.txtobject-tests/batch/many-0689.txtobject-tests/batch/many-0690.txtobject-tests/batch/many-0691.txtobject-tests/batch/many-0692.txtobject-tests/batch/many-0693.txtobject-tests/batch/many-0694.txtobject-tests/batch/many-0695.txtobject-tests/batch/many-0696.txtobject-tests/batch/many-0697.txtobject-tests/batch/many-0698.txtobject-tests/batch/many-0699.txtobject-tests/batch/many-0700.txtobject-tests/batch/many-0701.txtobject-tests/batch/many-0702.txtobject-tests/batch/many-0703.txtobject-tests/batch/many-0704.txtobject-tests/batch/many-0705.txtobject-tests/batch/many-0706.txtobject-tests/batch/many-0707.txtobject-tests/batch/many-0708.txtobject-tests/batch/many-0709.txtobject-tests/batch/many-0710.txtobject-tests/batch/many-0711.txtobject-tests/batch/many-0712.txtobject-tests/batch/many-0713.txtobject-tests/batch/many-0714.txtobject-tests/batch/many-0715.txtobject-tests/batch/many-0716.txtobject-tests/batch/many-0717.txtobject-tests/batch/many-0718.txtobject-tests/batch/many-0719.txtobject-tests/batch/many-0720.txtobject-tests/batch/many-0721.txtobject-tests/batch/many-0722.txtobject-tests/batch/many-0723.txtobject-tests/batch/many-0724.txtobject-tests/batch/many-0725.txtobject-tests/batch/many-0726.txtobject-tests/batch/many-0727.txtobject-tests/batch/many-0728.txtobject-tests/batch/many-0729.txtobject-tests/batch/many-0730.txtobject-tests/batch/many-0731.txtobject-tests/batch/many-0732.txtobject-tests/batch/many-0733.txtobject-tests/batch/many-0734.txtobject-tests/batch/many-0735.txtobject-tests/batch/many-0736.txtobject-tests/batch/many-0737.txtobject-tests/batch/many-0738.txtobject-tests/batch/many-0739.txtobject-tests/batch/many-0740.txtobject-tests/batch/many-0741.txtobject-tests/batch/many-0742.txtobject-tests/batch/many-0743.txtobject-tests/batch/many-0744.txtobject-tests/batch/many-0745.txtobject-tests/batch/many-0746.txtobject-tests/batch/many-0747.txtobject-tests/batch/many-0748.txtobject-tests/batch/many-0749.txtobject-tests/batch/many-0750.txtobject-tests/batch/many-0751.txtobject-tests/batch/many-0752.txtobject-tests/batch/many-0753.txtobject-tests/batch/many-0754.txtobject-tests/batch/many-0755.txtobject-tests/batch/many-0756.txtobject-tests/batch/many-0757.txtobject-tests/batch/many-0758.txtobject-tests/batch/many-0759.txtobject-tests/batch/many-0760.txtobject-tests/batch/many-0761.txtobject-tests/batch/many-0762.txtobject-tests/batch/many-0763.txtobject-tests/batch/many-0764.txtobject-tests/batch/many-0765.txtobject-tests/batch/many-0766.txtobject-tests/batch/many-0767.txtobject-tests/batch/many-0768.txtobject-tests/batch/many-0769.txtobject-tests/batch/many-0770.txtobject-tests/batch/many-0771.txtobject-tests/batch/many-0772.txtobject-tests/batch/many-0773.txtobject-tests/batch/many-0774.txtobject-tests/batch/many-0775.txtobject-tests/batch/many-0776.txtobject-tests/batch/many-0777.txtobject-tests/batch/many-0778.txtobject-tests/batch/many-0779.txtobject-tests/batch/many-0780.txtobject-tests/batch/many-0781.txtobject-tests/batch/many-0782.txtobject-tests/batch/many-0783.txtobject-tests/batch/many-0784.txtobject-tests/batch/many-0785.txtobject-tests/batch/many-0786.txtobject-tests/batch/many-0787.txtobject-tests/batch/many-0788.txtobject-tests/batch/many-0789.txtobject-tests/batch/many-0790.txtobject-tests/batch/many-0791.txtobject-tests/batch/many-0792.txtobject-tests/batch/many-0793.txtobject-tests/batch/many-0794.txtobject-tests/batch/many-0795.txtobject-tests/batch/many-0796.txtobject-tests/batch/many-0797.txtobject-tests/batch/many-0798.txtobject-tests/batch/many-0799.txtobject-tests/batch/many-0800.txtobject-tests/batch/many-0801.txtobject-tests/batch/many-0802.txtobject-tests/batch/many-0803.txtobject-tests/batch/many-0804.txtobject-tests/batch/many-0805.txtobject-tests/batch/many-0806.txtobject-tests/batch/many-0807.txtobject-tests/batch/many-0808.txtobject-tests/batch/many-0809.txtobject-tests/batch/many-0810.txtobject-tests/batch/many-0811.txtobject-tests/batch/many-0812.txtobject-tests/batch/many-0813.txtobject-tests/batch/many-0814.txtobject-tests/batch/many-0815.txtobject-tests/batch/many-0816.txtobject-tests/batch/many-0817.txtobject-tests/batch/many-0818.txtobject-tests/batch/many-0819.txtobject-tests/batch/many-0820.txtobject-tests/batch/many-0821.txtobject-tests/batch/many-0822.txtobject-tests/batch/many-0823.txtobject-tests/batch/many-0824.txtobject-tests/batch/many-0825.txtobject-tests/batch/many-0826.txtobject-tests/batch/many-0827.txtobject-tests/batch/many-0828.txtobject-tests/batch/many-0829.txtobject-tests/batch/many-0830.txtobject-tests/batch/many-0831.txtobject-tests/batch/many-0832.txtobject-tests/batch/many-0833.txtobject-tests/batch/many-0834.txtobject-tests/batch/many-0835.txtobject-tests/batch/many-0836.txtobject-tests/batch/many-0837.txtobject-tests/batch/many-0838.txtobject-tests/batch/many-0839.txtobject-tests/batch/many-0840.txtobject-tests/batch/many-0841.txtobject-tests/batch/many-0842.txtobject-tests/batch/many-0843.txtobject-tests/batch/many-0844.txtobject-tests/batch/many-0845.txtobject-tests/batch/many-0846.txtobject-tests/batch/many-0847.txtobject-tests/batch/many-0848.txtobject-tests/batch/many-0849.txtobject-tests/batch/many-0850.txtobject-tests/batch/many-0851.txtobject-tests/batch/many-0852.txtobject-tests/batch/many-0853.txtobject-tests/batch/many-0854.txtobject-tests/batch/many-0855.txtobject-tests/batch/many-0856.txtobject-tests/batch/many-0857.txtobject-tests/batch/many-0858.txtobject-tests/batch/many-0859.txtobject-tests/batch/many-0860.txtobject-tests/batch/many-0861.txtobject-tests/batch/many-0862.txtobject-tests/batch/many-0863.txtobject-tests/batch/many-0864.txtobject-tests/batch/many-0865.txtobject-tests/batch/many-0866.txtobject-tests/batch/many-0867.txtobject-tests/batch/many-0868.txtobject-tests/batch/many-0869.txtobject-tests/batch/many-0870.txtobject-tests/batch/many-0871.txtobject-tests/batch/many-0872.txtobject-tests/batch/many-0873.txtobject-tests/batch/many-0874.txtobject-tests/batch/many-0875.txtobject-tests/batch/many-0876.txtobject-tests/batch/many-0877.txtobject-tests/batch/many-0878.txtobject-tests/batch/many-0879.txtobject-tests/batch/many-0880.txtobject-tests/batch/many-0881.txtobject-tests/batch/many-0882.txtobject-tests/batch/many-0883.txtobject-tests/batch/many-0884.txtobject-tests/batch/many-0885.txtobject-tests/batch/many-0886.txtobject-tests/batch/many-0887.txtobject-tests/batch/many-0888.txtobject-tests/batch/many-0889.txtobject-tests/batch/many-0890.txtobject-tests/batch/many-0891.txtobject-tests/batch/many-0892.txtobject-tests/batch/many-0893.txtobject-tests/batch/many-0894.txtobject-tests/batch/many-0895.txtobject-tests/batch/many-0896.txtobject-tests/batch/many-0897.txtobject-tests/batch/many-0898.txtobject-tests/batch/many-0899.txtobject-tests/batch/many-0900.txtobject-tests/batch/many-0901.txtobject-tests/batch/many-0902.txtobject-tests/batch/many-0903.txtobject-tests/batch/many-0904.txtobject-tests/batch/many-0905.txtobject-tests/batch/many-0906.txtobject-tests/batch/many-0907.txtobject-tests/batch/many-0908.txtobject-tests/batch/many-0909.txtobject-tests/batch/many-0910.txtobject-tests/batch/many-0911.txtobject-tests/batch/many-0912.txtobject-tests/batch/many-0913.txtobject-tests/batch/many-0914.txtobject-tests/batch/many-0915.txtobject-tests/batch/many-0916.txtobject-tests/batch/many-0917.txtobject-tests/batch/many-0918.txtobject-tests/batch/many-0919.txtobject-tests/batch/many-0920.txtobject-tests/batch/many-0921.txtobject-tests/batch/many-0922.txtobject-tests/batch/many-0923.txtobject-tests/batch/many-0924.txtobject-tests/batch/many-0925.txtobject-tests/batch/many-0926.txtobject-tests/batch/many-0927.txtobject-tests/batch/many-0928.txtobject-tests/batch/many-0929.txtobject-tests/batch/many-0930.txtobject-tests/batch/many-0931.txtobject-tests/batch/many-0932.txtobject-tests/batch/many-0933.txtobject-tests/batch/many-0934.txtobject-tests/batch/many-0935.txtobject-tests/batch/many-0936.txtobject-tests/batch/many-0937.txtobject-tests/batch/many-0938.txtobject-tests/batch/many-0939.txtobject-tests/batch/many-0940.txtobject-tests/batch/many-0941.txtobject-tests/batch/many-0942.txtobject-tests/batch/many-0943.txtobject-tests/batch/many-0944.txtobject-tests/batch/many-0945.txtobject-tests/batch/many-0946.txtobject-tests/batch/many-0947.txtobject-tests/batch/many-0948.txtobject-tests/batch/many-0949.txtobject-tests/batch/many-0950.txtobject-tests/batch/many-0951.txtobject-tests/batch/many-0952.txtobject-tests/batch/many-0953.txtobject-tests/batch/many-0954.txtobject-tests/batch/many-0955.txtobject-tests/batch/many-0956.txtobject-tests/batch/many-0957.txtobject-tests/batch/many-0958.txtobject-tests/batch/many-0959.txtobject-tests/batch/many-0960.txtobject-tests/batch/many-0961.txtobject-tests/batch/many-0962.txtobject-tests/batch/many-0963.txtobject-tests/batch/many-0964.txtobject-tests/batch/many-0965.txtobject-tests/batch/many-0966.txtobject-tests/batch/many-0967.txtobject-tests/batch/many-0968.txtobject-tests/batch/many-0969.txtobject-tests/batch/many-0970.txtobject-tests/batch/many-0971.txtobject-tests/batch/many-0972.txtobject-tests/batch/many-0973.txtobject-tests/batch/many-0974.txtobject-tests/batch/many-0975.txtobject-tests/batch/many-0976.txtobject-tests/batch/many-0977.txtobject-tests/batch/many-0978.txtobject-tests/batch/many-0979.txtobject-tests/batch/many-0980.txtobject-tests/batch/many-0981.txtobject-tests/batch/many-0982.txtobject-tests/batch/many-0983.txtobject-tests/batch/many-0984.txtobject-tests/batch/many-0985.txtobject-tests/batch/many-0986.txtobject-tests/batch/many-0987.txtobject-tests/batch/many-0988.txtobject-tests/batch/many-0989.txtobject-tests/batch/many-0990.txtobject-tests/batch/many-0991.txtobject-tests/batch/many-0992.txtobject-tests/batch/many-0993.txtobject-tests/batch/many-0994.txtobject-tests/batch/many-0995.txtobject-tests/batch/many-0996.txtobject-tests/batch/many-0997.txtobject-tests/batch/many-0998.txtobject-tests/batch/many-0999.txt"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -115846,18 +155091,2067 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "EntityTooSmallFixture error"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/deleted",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ "object-tests/batch/many-0000.txt",
+ "object-tests/batch/many-0001.txt",
+ "object-tests/batch/many-0002.txt",
+ "object-tests/batch/many-0003.txt",
+ "object-tests/batch/many-0004.txt",
+ "object-tests/batch/many-0005.txt",
+ "object-tests/batch/many-0006.txt",
+ "object-tests/batch/many-0007.txt",
+ "object-tests/batch/many-0008.txt",
+ "object-tests/batch/many-0009.txt",
+ "object-tests/batch/many-0010.txt",
+ "object-tests/batch/many-0011.txt",
+ "object-tests/batch/many-0012.txt",
+ "object-tests/batch/many-0013.txt",
+ "object-tests/batch/many-0014.txt",
+ "object-tests/batch/many-0015.txt",
+ "object-tests/batch/many-0016.txt",
+ "object-tests/batch/many-0017.txt",
+ "object-tests/batch/many-0018.txt",
+ "object-tests/batch/many-0019.txt",
+ "object-tests/batch/many-0020.txt",
+ "object-tests/batch/many-0021.txt",
+ "object-tests/batch/many-0022.txt",
+ "object-tests/batch/many-0023.txt",
+ "object-tests/batch/many-0024.txt",
+ "object-tests/batch/many-0025.txt",
+ "object-tests/batch/many-0026.txt",
+ "object-tests/batch/many-0027.txt",
+ "object-tests/batch/many-0028.txt",
+ "object-tests/batch/many-0029.txt",
+ "object-tests/batch/many-0030.txt",
+ "object-tests/batch/many-0031.txt",
+ "object-tests/batch/many-0032.txt",
+ "object-tests/batch/many-0033.txt",
+ "object-tests/batch/many-0034.txt",
+ "object-tests/batch/many-0035.txt",
+ "object-tests/batch/many-0036.txt",
+ "object-tests/batch/many-0037.txt",
+ "object-tests/batch/many-0038.txt",
+ "object-tests/batch/many-0039.txt",
+ "object-tests/batch/many-0040.txt",
+ "object-tests/batch/many-0041.txt",
+ "object-tests/batch/many-0042.txt",
+ "object-tests/batch/many-0043.txt",
+ "object-tests/batch/many-0044.txt",
+ "object-tests/batch/many-0045.txt",
+ "object-tests/batch/many-0046.txt",
+ "object-tests/batch/many-0047.txt",
+ "object-tests/batch/many-0048.txt",
+ "object-tests/batch/many-0049.txt",
+ "object-tests/batch/many-0050.txt",
+ "object-tests/batch/many-0051.txt",
+ "object-tests/batch/many-0052.txt",
+ "object-tests/batch/many-0053.txt",
+ "object-tests/batch/many-0054.txt",
+ "object-tests/batch/many-0055.txt",
+ "object-tests/batch/many-0056.txt",
+ "object-tests/batch/many-0057.txt",
+ "object-tests/batch/many-0058.txt",
+ "object-tests/batch/many-0059.txt",
+ "object-tests/batch/many-0060.txt",
+ "object-tests/batch/many-0061.txt",
+ "object-tests/batch/many-0062.txt",
+ "object-tests/batch/many-0063.txt",
+ "object-tests/batch/many-0064.txt",
+ "object-tests/batch/many-0065.txt",
+ "object-tests/batch/many-0066.txt",
+ "object-tests/batch/many-0067.txt",
+ "object-tests/batch/many-0068.txt",
+ "object-tests/batch/many-0069.txt",
+ "object-tests/batch/many-0070.txt",
+ "object-tests/batch/many-0071.txt",
+ "object-tests/batch/many-0072.txt",
+ "object-tests/batch/many-0073.txt",
+ "object-tests/batch/many-0074.txt",
+ "object-tests/batch/many-0075.txt",
+ "object-tests/batch/many-0076.txt",
+ "object-tests/batch/many-0077.txt",
+ "object-tests/batch/many-0078.txt",
+ "object-tests/batch/many-0079.txt",
+ "object-tests/batch/many-0080.txt",
+ "object-tests/batch/many-0081.txt",
+ "object-tests/batch/many-0082.txt",
+ "object-tests/batch/many-0083.txt",
+ "object-tests/batch/many-0084.txt",
+ "object-tests/batch/many-0085.txt",
+ "object-tests/batch/many-0086.txt",
+ "object-tests/batch/many-0087.txt",
+ "object-tests/batch/many-0088.txt",
+ "object-tests/batch/many-0089.txt",
+ "object-tests/batch/many-0090.txt",
+ "object-tests/batch/many-0091.txt",
+ "object-tests/batch/many-0092.txt",
+ "object-tests/batch/many-0093.txt",
+ "object-tests/batch/many-0094.txt",
+ "object-tests/batch/many-0095.txt",
+ "object-tests/batch/many-0096.txt",
+ "object-tests/batch/many-0097.txt",
+ "object-tests/batch/many-0098.txt",
+ "object-tests/batch/many-0099.txt",
+ "object-tests/batch/many-0100.txt",
+ "object-tests/batch/many-0101.txt",
+ "object-tests/batch/many-0102.txt",
+ "object-tests/batch/many-0103.txt",
+ "object-tests/batch/many-0104.txt",
+ "object-tests/batch/many-0105.txt",
+ "object-tests/batch/many-0106.txt",
+ "object-tests/batch/many-0107.txt",
+ "object-tests/batch/many-0108.txt",
+ "object-tests/batch/many-0109.txt",
+ "object-tests/batch/many-0110.txt",
+ "object-tests/batch/many-0111.txt",
+ "object-tests/batch/many-0112.txt",
+ "object-tests/batch/many-0113.txt",
+ "object-tests/batch/many-0114.txt",
+ "object-tests/batch/many-0115.txt",
+ "object-tests/batch/many-0116.txt",
+ "object-tests/batch/many-0117.txt",
+ "object-tests/batch/many-0118.txt",
+ "object-tests/batch/many-0119.txt",
+ "object-tests/batch/many-0120.txt",
+ "object-tests/batch/many-0121.txt",
+ "object-tests/batch/many-0122.txt",
+ "object-tests/batch/many-0123.txt",
+ "object-tests/batch/many-0124.txt",
+ "object-tests/batch/many-0125.txt",
+ "object-tests/batch/many-0126.txt",
+ "object-tests/batch/many-0127.txt",
+ "object-tests/batch/many-0128.txt",
+ "object-tests/batch/many-0129.txt",
+ "object-tests/batch/many-0130.txt",
+ "object-tests/batch/many-0131.txt",
+ "object-tests/batch/many-0132.txt",
+ "object-tests/batch/many-0133.txt",
+ "object-tests/batch/many-0134.txt",
+ "object-tests/batch/many-0135.txt",
+ "object-tests/batch/many-0136.txt",
+ "object-tests/batch/many-0137.txt",
+ "object-tests/batch/many-0138.txt",
+ "object-tests/batch/many-0139.txt",
+ "object-tests/batch/many-0140.txt",
+ "object-tests/batch/many-0141.txt",
+ "object-tests/batch/many-0142.txt",
+ "object-tests/batch/many-0143.txt",
+ "object-tests/batch/many-0144.txt",
+ "object-tests/batch/many-0145.txt",
+ "object-tests/batch/many-0146.txt",
+ "object-tests/batch/many-0147.txt",
+ "object-tests/batch/many-0148.txt",
+ "object-tests/batch/many-0149.txt",
+ "object-tests/batch/many-0150.txt",
+ "object-tests/batch/many-0151.txt",
+ "object-tests/batch/many-0152.txt",
+ "object-tests/batch/many-0153.txt",
+ "object-tests/batch/many-0154.txt",
+ "object-tests/batch/many-0155.txt",
+ "object-tests/batch/many-0156.txt",
+ "object-tests/batch/many-0157.txt",
+ "object-tests/batch/many-0158.txt",
+ "object-tests/batch/many-0159.txt",
+ "object-tests/batch/many-0160.txt",
+ "object-tests/batch/many-0161.txt",
+ "object-tests/batch/many-0162.txt",
+ "object-tests/batch/many-0163.txt",
+ "object-tests/batch/many-0164.txt",
+ "object-tests/batch/many-0165.txt",
+ "object-tests/batch/many-0166.txt",
+ "object-tests/batch/many-0167.txt",
+ "object-tests/batch/many-0168.txt",
+ "object-tests/batch/many-0169.txt",
+ "object-tests/batch/many-0170.txt",
+ "object-tests/batch/many-0171.txt",
+ "object-tests/batch/many-0172.txt",
+ "object-tests/batch/many-0173.txt",
+ "object-tests/batch/many-0174.txt",
+ "object-tests/batch/many-0175.txt",
+ "object-tests/batch/many-0176.txt",
+ "object-tests/batch/many-0177.txt",
+ "object-tests/batch/many-0178.txt",
+ "object-tests/batch/many-0179.txt",
+ "object-tests/batch/many-0180.txt",
+ "object-tests/batch/many-0181.txt",
+ "object-tests/batch/many-0182.txt",
+ "object-tests/batch/many-0183.txt",
+ "object-tests/batch/many-0184.txt",
+ "object-tests/batch/many-0185.txt",
+ "object-tests/batch/many-0186.txt",
+ "object-tests/batch/many-0187.txt",
+ "object-tests/batch/many-0188.txt",
+ "object-tests/batch/many-0189.txt",
+ "object-tests/batch/many-0190.txt",
+ "object-tests/batch/many-0191.txt",
+ "object-tests/batch/many-0192.txt",
+ "object-tests/batch/many-0193.txt",
+ "object-tests/batch/many-0194.txt",
+ "object-tests/batch/many-0195.txt",
+ "object-tests/batch/many-0196.txt",
+ "object-tests/batch/many-0197.txt",
+ "object-tests/batch/many-0198.txt",
+ "object-tests/batch/many-0199.txt",
+ "object-tests/batch/many-0200.txt",
+ "object-tests/batch/many-0201.txt",
+ "object-tests/batch/many-0202.txt",
+ "object-tests/batch/many-0203.txt",
+ "object-tests/batch/many-0204.txt",
+ "object-tests/batch/many-0205.txt",
+ "object-tests/batch/many-0206.txt",
+ "object-tests/batch/many-0207.txt",
+ "object-tests/batch/many-0208.txt",
+ "object-tests/batch/many-0209.txt",
+ "object-tests/batch/many-0210.txt",
+ "object-tests/batch/many-0211.txt",
+ "object-tests/batch/many-0212.txt",
+ "object-tests/batch/many-0213.txt",
+ "object-tests/batch/many-0214.txt",
+ "object-tests/batch/many-0215.txt",
+ "object-tests/batch/many-0216.txt",
+ "object-tests/batch/many-0217.txt",
+ "object-tests/batch/many-0218.txt",
+ "object-tests/batch/many-0219.txt",
+ "object-tests/batch/many-0220.txt",
+ "object-tests/batch/many-0221.txt",
+ "object-tests/batch/many-0222.txt",
+ "object-tests/batch/many-0223.txt",
+ "object-tests/batch/many-0224.txt",
+ "object-tests/batch/many-0225.txt",
+ "object-tests/batch/many-0226.txt",
+ "object-tests/batch/many-0227.txt",
+ "object-tests/batch/many-0228.txt",
+ "object-tests/batch/many-0229.txt",
+ "object-tests/batch/many-0230.txt",
+ "object-tests/batch/many-0231.txt",
+ "object-tests/batch/many-0232.txt",
+ "object-tests/batch/many-0233.txt",
+ "object-tests/batch/many-0234.txt",
+ "object-tests/batch/many-0235.txt",
+ "object-tests/batch/many-0236.txt",
+ "object-tests/batch/many-0237.txt",
+ "object-tests/batch/many-0238.txt",
+ "object-tests/batch/many-0239.txt",
+ "object-tests/batch/many-0240.txt",
+ "object-tests/batch/many-0241.txt",
+ "object-tests/batch/many-0242.txt",
+ "object-tests/batch/many-0243.txt",
+ "object-tests/batch/many-0244.txt",
+ "object-tests/batch/many-0245.txt",
+ "object-tests/batch/many-0246.txt",
+ "object-tests/batch/many-0247.txt",
+ "object-tests/batch/many-0248.txt",
+ "object-tests/batch/many-0249.txt",
+ "object-tests/batch/many-0250.txt",
+ "object-tests/batch/many-0251.txt",
+ "object-tests/batch/many-0252.txt",
+ "object-tests/batch/many-0253.txt",
+ "object-tests/batch/many-0254.txt",
+ "object-tests/batch/many-0255.txt",
+ "object-tests/batch/many-0256.txt",
+ "object-tests/batch/many-0257.txt",
+ "object-tests/batch/many-0258.txt",
+ "object-tests/batch/many-0259.txt",
+ "object-tests/batch/many-0260.txt",
+ "object-tests/batch/many-0261.txt",
+ "object-tests/batch/many-0262.txt",
+ "object-tests/batch/many-0263.txt",
+ "object-tests/batch/many-0264.txt",
+ "object-tests/batch/many-0265.txt",
+ "object-tests/batch/many-0266.txt",
+ "object-tests/batch/many-0267.txt",
+ "object-tests/batch/many-0268.txt",
+ "object-tests/batch/many-0269.txt",
+ "object-tests/batch/many-0270.txt",
+ "object-tests/batch/many-0271.txt",
+ "object-tests/batch/many-0272.txt",
+ "object-tests/batch/many-0273.txt",
+ "object-tests/batch/many-0274.txt",
+ "object-tests/batch/many-0275.txt",
+ "object-tests/batch/many-0276.txt",
+ "object-tests/batch/many-0277.txt",
+ "object-tests/batch/many-0278.txt",
+ "object-tests/batch/many-0279.txt",
+ "object-tests/batch/many-0280.txt",
+ "object-tests/batch/many-0281.txt",
+ "object-tests/batch/many-0282.txt",
+ "object-tests/batch/many-0283.txt",
+ "object-tests/batch/many-0284.txt",
+ "object-tests/batch/many-0285.txt",
+ "object-tests/batch/many-0286.txt",
+ "object-tests/batch/many-0287.txt",
+ "object-tests/batch/many-0288.txt",
+ "object-tests/batch/many-0289.txt",
+ "object-tests/batch/many-0290.txt",
+ "object-tests/batch/many-0291.txt",
+ "object-tests/batch/many-0292.txt",
+ "object-tests/batch/many-0293.txt",
+ "object-tests/batch/many-0294.txt",
+ "object-tests/batch/many-0295.txt",
+ "object-tests/batch/many-0296.txt",
+ "object-tests/batch/many-0297.txt",
+ "object-tests/batch/many-0298.txt",
+ "object-tests/batch/many-0299.txt",
+ "object-tests/batch/many-0300.txt",
+ "object-tests/batch/many-0301.txt",
+ "object-tests/batch/many-0302.txt",
+ "object-tests/batch/many-0303.txt",
+ "object-tests/batch/many-0304.txt",
+ "object-tests/batch/many-0305.txt",
+ "object-tests/batch/many-0306.txt",
+ "object-tests/batch/many-0307.txt",
+ "object-tests/batch/many-0308.txt",
+ "object-tests/batch/many-0309.txt",
+ "object-tests/batch/many-0310.txt",
+ "object-tests/batch/many-0311.txt",
+ "object-tests/batch/many-0312.txt",
+ "object-tests/batch/many-0313.txt",
+ "object-tests/batch/many-0314.txt",
+ "object-tests/batch/many-0315.txt",
+ "object-tests/batch/many-0316.txt",
+ "object-tests/batch/many-0317.txt",
+ "object-tests/batch/many-0318.txt",
+ "object-tests/batch/many-0319.txt",
+ "object-tests/batch/many-0320.txt",
+ "object-tests/batch/many-0321.txt",
+ "object-tests/batch/many-0322.txt",
+ "object-tests/batch/many-0323.txt",
+ "object-tests/batch/many-0324.txt",
+ "object-tests/batch/many-0325.txt",
+ "object-tests/batch/many-0326.txt",
+ "object-tests/batch/many-0327.txt",
+ "object-tests/batch/many-0328.txt",
+ "object-tests/batch/many-0329.txt",
+ "object-tests/batch/many-0330.txt",
+ "object-tests/batch/many-0331.txt",
+ "object-tests/batch/many-0332.txt",
+ "object-tests/batch/many-0333.txt",
+ "object-tests/batch/many-0334.txt",
+ "object-tests/batch/many-0335.txt",
+ "object-tests/batch/many-0336.txt",
+ "object-tests/batch/many-0337.txt",
+ "object-tests/batch/many-0338.txt",
+ "object-tests/batch/many-0339.txt",
+ "object-tests/batch/many-0340.txt",
+ "object-tests/batch/many-0341.txt",
+ "object-tests/batch/many-0342.txt",
+ "object-tests/batch/many-0343.txt",
+ "object-tests/batch/many-0344.txt",
+ "object-tests/batch/many-0345.txt",
+ "object-tests/batch/many-0346.txt",
+ "object-tests/batch/many-0347.txt",
+ "object-tests/batch/many-0348.txt",
+ "object-tests/batch/many-0349.txt",
+ "object-tests/batch/many-0350.txt",
+ "object-tests/batch/many-0351.txt",
+ "object-tests/batch/many-0352.txt",
+ "object-tests/batch/many-0353.txt",
+ "object-tests/batch/many-0354.txt",
+ "object-tests/batch/many-0355.txt",
+ "object-tests/batch/many-0356.txt",
+ "object-tests/batch/many-0357.txt",
+ "object-tests/batch/many-0358.txt",
+ "object-tests/batch/many-0359.txt",
+ "object-tests/batch/many-0360.txt",
+ "object-tests/batch/many-0361.txt",
+ "object-tests/batch/many-0362.txt",
+ "object-tests/batch/many-0363.txt",
+ "object-tests/batch/many-0364.txt",
+ "object-tests/batch/many-0365.txt",
+ "object-tests/batch/many-0366.txt",
+ "object-tests/batch/many-0367.txt",
+ "object-tests/batch/many-0368.txt",
+ "object-tests/batch/many-0369.txt",
+ "object-tests/batch/many-0370.txt",
+ "object-tests/batch/many-0371.txt",
+ "object-tests/batch/many-0372.txt",
+ "object-tests/batch/many-0373.txt",
+ "object-tests/batch/many-0374.txt",
+ "object-tests/batch/many-0375.txt",
+ "object-tests/batch/many-0376.txt",
+ "object-tests/batch/many-0377.txt",
+ "object-tests/batch/many-0378.txt",
+ "object-tests/batch/many-0379.txt",
+ "object-tests/batch/many-0380.txt",
+ "object-tests/batch/many-0381.txt",
+ "object-tests/batch/many-0382.txt",
+ "object-tests/batch/many-0383.txt",
+ "object-tests/batch/many-0384.txt",
+ "object-tests/batch/many-0385.txt",
+ "object-tests/batch/many-0386.txt",
+ "object-tests/batch/many-0387.txt",
+ "object-tests/batch/many-0388.txt",
+ "object-tests/batch/many-0389.txt",
+ "object-tests/batch/many-0390.txt",
+ "object-tests/batch/many-0391.txt",
+ "object-tests/batch/many-0392.txt",
+ "object-tests/batch/many-0393.txt",
+ "object-tests/batch/many-0394.txt",
+ "object-tests/batch/many-0395.txt",
+ "object-tests/batch/many-0396.txt",
+ "object-tests/batch/many-0397.txt",
+ "object-tests/batch/many-0398.txt",
+ "object-tests/batch/many-0399.txt",
+ "object-tests/batch/many-0400.txt",
+ "object-tests/batch/many-0401.txt",
+ "object-tests/batch/many-0402.txt",
+ "object-tests/batch/many-0403.txt",
+ "object-tests/batch/many-0404.txt",
+ "object-tests/batch/many-0405.txt",
+ "object-tests/batch/many-0406.txt",
+ "object-tests/batch/many-0407.txt",
+ "object-tests/batch/many-0408.txt",
+ "object-tests/batch/many-0409.txt",
+ "object-tests/batch/many-0410.txt",
+ "object-tests/batch/many-0411.txt",
+ "object-tests/batch/many-0412.txt",
+ "object-tests/batch/many-0413.txt",
+ "object-tests/batch/many-0414.txt",
+ "object-tests/batch/many-0415.txt",
+ "object-tests/batch/many-0416.txt",
+ "object-tests/batch/many-0417.txt",
+ "object-tests/batch/many-0418.txt",
+ "object-tests/batch/many-0419.txt",
+ "object-tests/batch/many-0420.txt",
+ "object-tests/batch/many-0421.txt",
+ "object-tests/batch/many-0422.txt",
+ "object-tests/batch/many-0423.txt",
+ "object-tests/batch/many-0424.txt",
+ "object-tests/batch/many-0425.txt",
+ "object-tests/batch/many-0426.txt",
+ "object-tests/batch/many-0427.txt",
+ "object-tests/batch/many-0428.txt",
+ "object-tests/batch/many-0429.txt",
+ "object-tests/batch/many-0430.txt",
+ "object-tests/batch/many-0431.txt",
+ "object-tests/batch/many-0432.txt",
+ "object-tests/batch/many-0433.txt",
+ "object-tests/batch/many-0434.txt",
+ "object-tests/batch/many-0435.txt",
+ "object-tests/batch/many-0436.txt",
+ "object-tests/batch/many-0437.txt",
+ "object-tests/batch/many-0438.txt",
+ "object-tests/batch/many-0439.txt",
+ "object-tests/batch/many-0440.txt",
+ "object-tests/batch/many-0441.txt",
+ "object-tests/batch/many-0442.txt",
+ "object-tests/batch/many-0443.txt",
+ "object-tests/batch/many-0444.txt",
+ "object-tests/batch/many-0445.txt",
+ "object-tests/batch/many-0446.txt",
+ "object-tests/batch/many-0447.txt",
+ "object-tests/batch/many-0448.txt",
+ "object-tests/batch/many-0449.txt",
+ "object-tests/batch/many-0450.txt",
+ "object-tests/batch/many-0451.txt",
+ "object-tests/batch/many-0452.txt",
+ "object-tests/batch/many-0453.txt",
+ "object-tests/batch/many-0454.txt",
+ "object-tests/batch/many-0455.txt",
+ "object-tests/batch/many-0456.txt",
+ "object-tests/batch/many-0457.txt",
+ "object-tests/batch/many-0458.txt",
+ "object-tests/batch/many-0459.txt",
+ "object-tests/batch/many-0460.txt",
+ "object-tests/batch/many-0461.txt",
+ "object-tests/batch/many-0462.txt",
+ "object-tests/batch/many-0463.txt",
+ "object-tests/batch/many-0464.txt",
+ "object-tests/batch/many-0465.txt",
+ "object-tests/batch/many-0466.txt",
+ "object-tests/batch/many-0467.txt",
+ "object-tests/batch/many-0468.txt",
+ "object-tests/batch/many-0469.txt",
+ "object-tests/batch/many-0470.txt",
+ "object-tests/batch/many-0471.txt",
+ "object-tests/batch/many-0472.txt",
+ "object-tests/batch/many-0473.txt",
+ "object-tests/batch/many-0474.txt",
+ "object-tests/batch/many-0475.txt",
+ "object-tests/batch/many-0476.txt",
+ "object-tests/batch/many-0477.txt",
+ "object-tests/batch/many-0478.txt",
+ "object-tests/batch/many-0479.txt",
+ "object-tests/batch/many-0480.txt",
+ "object-tests/batch/many-0481.txt",
+ "object-tests/batch/many-0482.txt",
+ "object-tests/batch/many-0483.txt",
+ "object-tests/batch/many-0484.txt",
+ "object-tests/batch/many-0485.txt",
+ "object-tests/batch/many-0486.txt",
+ "object-tests/batch/many-0487.txt",
+ "object-tests/batch/many-0488.txt",
+ "object-tests/batch/many-0489.txt",
+ "object-tests/batch/many-0490.txt",
+ "object-tests/batch/many-0491.txt",
+ "object-tests/batch/many-0492.txt",
+ "object-tests/batch/many-0493.txt",
+ "object-tests/batch/many-0494.txt",
+ "object-tests/batch/many-0495.txt",
+ "object-tests/batch/many-0496.txt",
+ "object-tests/batch/many-0497.txt",
+ "object-tests/batch/many-0498.txt",
+ "object-tests/batch/many-0499.txt",
+ "object-tests/batch/many-0500.txt",
+ "object-tests/batch/many-0501.txt",
+ "object-tests/batch/many-0502.txt",
+ "object-tests/batch/many-0503.txt",
+ "object-tests/batch/many-0504.txt",
+ "object-tests/batch/many-0505.txt",
+ "object-tests/batch/many-0506.txt",
+ "object-tests/batch/many-0507.txt",
+ "object-tests/batch/many-0508.txt",
+ "object-tests/batch/many-0509.txt",
+ "object-tests/batch/many-0510.txt",
+ "object-tests/batch/many-0511.txt",
+ "object-tests/batch/many-0512.txt",
+ "object-tests/batch/many-0513.txt",
+ "object-tests/batch/many-0514.txt",
+ "object-tests/batch/many-0515.txt",
+ "object-tests/batch/many-0516.txt",
+ "object-tests/batch/many-0517.txt",
+ "object-tests/batch/many-0518.txt",
+ "object-tests/batch/many-0519.txt",
+ "object-tests/batch/many-0520.txt",
+ "object-tests/batch/many-0521.txt",
+ "object-tests/batch/many-0522.txt",
+ "object-tests/batch/many-0523.txt",
+ "object-tests/batch/many-0524.txt",
+ "object-tests/batch/many-0525.txt",
+ "object-tests/batch/many-0526.txt",
+ "object-tests/batch/many-0527.txt",
+ "object-tests/batch/many-0528.txt",
+ "object-tests/batch/many-0529.txt",
+ "object-tests/batch/many-0530.txt",
+ "object-tests/batch/many-0531.txt",
+ "object-tests/batch/many-0532.txt",
+ "object-tests/batch/many-0533.txt",
+ "object-tests/batch/many-0534.txt",
+ "object-tests/batch/many-0535.txt",
+ "object-tests/batch/many-0536.txt",
+ "object-tests/batch/many-0537.txt",
+ "object-tests/batch/many-0538.txt",
+ "object-tests/batch/many-0539.txt",
+ "object-tests/batch/many-0540.txt",
+ "object-tests/batch/many-0541.txt",
+ "object-tests/batch/many-0542.txt",
+ "object-tests/batch/many-0543.txt",
+ "object-tests/batch/many-0544.txt",
+ "object-tests/batch/many-0545.txt",
+ "object-tests/batch/many-0546.txt",
+ "object-tests/batch/many-0547.txt",
+ "object-tests/batch/many-0548.txt",
+ "object-tests/batch/many-0549.txt",
+ "object-tests/batch/many-0550.txt",
+ "object-tests/batch/many-0551.txt",
+ "object-tests/batch/many-0552.txt",
+ "object-tests/batch/many-0553.txt",
+ "object-tests/batch/many-0554.txt",
+ "object-tests/batch/many-0555.txt",
+ "object-tests/batch/many-0556.txt",
+ "object-tests/batch/many-0557.txt",
+ "object-tests/batch/many-0558.txt",
+ "object-tests/batch/many-0559.txt",
+ "object-tests/batch/many-0560.txt",
+ "object-tests/batch/many-0561.txt",
+ "object-tests/batch/many-0562.txt",
+ "object-tests/batch/many-0563.txt",
+ "object-tests/batch/many-0564.txt",
+ "object-tests/batch/many-0565.txt",
+ "object-tests/batch/many-0566.txt",
+ "object-tests/batch/many-0567.txt",
+ "object-tests/batch/many-0568.txt",
+ "object-tests/batch/many-0569.txt",
+ "object-tests/batch/many-0570.txt",
+ "object-tests/batch/many-0571.txt",
+ "object-tests/batch/many-0572.txt",
+ "object-tests/batch/many-0573.txt",
+ "object-tests/batch/many-0574.txt",
+ "object-tests/batch/many-0575.txt",
+ "object-tests/batch/many-0576.txt",
+ "object-tests/batch/many-0577.txt",
+ "object-tests/batch/many-0578.txt",
+ "object-tests/batch/many-0579.txt",
+ "object-tests/batch/many-0580.txt",
+ "object-tests/batch/many-0581.txt",
+ "object-tests/batch/many-0582.txt",
+ "object-tests/batch/many-0583.txt",
+ "object-tests/batch/many-0584.txt",
+ "object-tests/batch/many-0585.txt",
+ "object-tests/batch/many-0586.txt",
+ "object-tests/batch/many-0587.txt",
+ "object-tests/batch/many-0588.txt",
+ "object-tests/batch/many-0589.txt",
+ "object-tests/batch/many-0590.txt",
+ "object-tests/batch/many-0591.txt",
+ "object-tests/batch/many-0592.txt",
+ "object-tests/batch/many-0593.txt",
+ "object-tests/batch/many-0594.txt",
+ "object-tests/batch/many-0595.txt",
+ "object-tests/batch/many-0596.txt",
+ "object-tests/batch/many-0597.txt",
+ "object-tests/batch/many-0598.txt",
+ "object-tests/batch/many-0599.txt",
+ "object-tests/batch/many-0600.txt",
+ "object-tests/batch/many-0601.txt",
+ "object-tests/batch/many-0602.txt",
+ "object-tests/batch/many-0603.txt",
+ "object-tests/batch/many-0604.txt",
+ "object-tests/batch/many-0605.txt",
+ "object-tests/batch/many-0606.txt",
+ "object-tests/batch/many-0607.txt",
+ "object-tests/batch/many-0608.txt",
+ "object-tests/batch/many-0609.txt",
+ "object-tests/batch/many-0610.txt",
+ "object-tests/batch/many-0611.txt",
+ "object-tests/batch/many-0612.txt",
+ "object-tests/batch/many-0613.txt",
+ "object-tests/batch/many-0614.txt",
+ "object-tests/batch/many-0615.txt",
+ "object-tests/batch/many-0616.txt",
+ "object-tests/batch/many-0617.txt",
+ "object-tests/batch/many-0618.txt",
+ "object-tests/batch/many-0619.txt",
+ "object-tests/batch/many-0620.txt",
+ "object-tests/batch/many-0621.txt",
+ "object-tests/batch/many-0622.txt",
+ "object-tests/batch/many-0623.txt",
+ "object-tests/batch/many-0624.txt",
+ "object-tests/batch/many-0625.txt",
+ "object-tests/batch/many-0626.txt",
+ "object-tests/batch/many-0627.txt",
+ "object-tests/batch/many-0628.txt",
+ "object-tests/batch/many-0629.txt",
+ "object-tests/batch/many-0630.txt",
+ "object-tests/batch/many-0631.txt",
+ "object-tests/batch/many-0632.txt",
+ "object-tests/batch/many-0633.txt",
+ "object-tests/batch/many-0634.txt",
+ "object-tests/batch/many-0635.txt",
+ "object-tests/batch/many-0636.txt",
+ "object-tests/batch/many-0637.txt",
+ "object-tests/batch/many-0638.txt",
+ "object-tests/batch/many-0639.txt",
+ "object-tests/batch/many-0640.txt",
+ "object-tests/batch/many-0641.txt",
+ "object-tests/batch/many-0642.txt",
+ "object-tests/batch/many-0643.txt",
+ "object-tests/batch/many-0644.txt",
+ "object-tests/batch/many-0645.txt",
+ "object-tests/batch/many-0646.txt",
+ "object-tests/batch/many-0647.txt",
+ "object-tests/batch/many-0648.txt",
+ "object-tests/batch/many-0649.txt",
+ "object-tests/batch/many-0650.txt",
+ "object-tests/batch/many-0651.txt",
+ "object-tests/batch/many-0652.txt",
+ "object-tests/batch/many-0653.txt",
+ "object-tests/batch/many-0654.txt",
+ "object-tests/batch/many-0655.txt",
+ "object-tests/batch/many-0656.txt",
+ "object-tests/batch/many-0657.txt",
+ "object-tests/batch/many-0658.txt",
+ "object-tests/batch/many-0659.txt",
+ "object-tests/batch/many-0660.txt",
+ "object-tests/batch/many-0661.txt",
+ "object-tests/batch/many-0662.txt",
+ "object-tests/batch/many-0663.txt",
+ "object-tests/batch/many-0664.txt",
+ "object-tests/batch/many-0665.txt",
+ "object-tests/batch/many-0666.txt",
+ "object-tests/batch/many-0667.txt",
+ "object-tests/batch/many-0668.txt",
+ "object-tests/batch/many-0669.txt",
+ "object-tests/batch/many-0670.txt",
+ "object-tests/batch/many-0671.txt",
+ "object-tests/batch/many-0672.txt",
+ "object-tests/batch/many-0673.txt",
+ "object-tests/batch/many-0674.txt",
+ "object-tests/batch/many-0675.txt",
+ "object-tests/batch/many-0676.txt",
+ "object-tests/batch/many-0677.txt",
+ "object-tests/batch/many-0678.txt",
+ "object-tests/batch/many-0679.txt",
+ "object-tests/batch/many-0680.txt",
+ "object-tests/batch/many-0681.txt",
+ "object-tests/batch/many-0682.txt",
+ "object-tests/batch/many-0683.txt",
+ "object-tests/batch/many-0684.txt",
+ "object-tests/batch/many-0685.txt",
+ "object-tests/batch/many-0686.txt",
+ "object-tests/batch/many-0687.txt",
+ "object-tests/batch/many-0688.txt",
+ "object-tests/batch/many-0689.txt",
+ "object-tests/batch/many-0690.txt",
+ "object-tests/batch/many-0691.txt",
+ "object-tests/batch/many-0692.txt",
+ "object-tests/batch/many-0693.txt",
+ "object-tests/batch/many-0694.txt",
+ "object-tests/batch/many-0695.txt",
+ "object-tests/batch/many-0696.txt",
+ "object-tests/batch/many-0697.txt",
+ "object-tests/batch/many-0698.txt",
+ "object-tests/batch/many-0699.txt",
+ "object-tests/batch/many-0700.txt",
+ "object-tests/batch/many-0701.txt",
+ "object-tests/batch/many-0702.txt",
+ "object-tests/batch/many-0703.txt",
+ "object-tests/batch/many-0704.txt",
+ "object-tests/batch/many-0705.txt",
+ "object-tests/batch/many-0706.txt",
+ "object-tests/batch/many-0707.txt",
+ "object-tests/batch/many-0708.txt",
+ "object-tests/batch/many-0709.txt",
+ "object-tests/batch/many-0710.txt",
+ "object-tests/batch/many-0711.txt",
+ "object-tests/batch/many-0712.txt",
+ "object-tests/batch/many-0713.txt",
+ "object-tests/batch/many-0714.txt",
+ "object-tests/batch/many-0715.txt",
+ "object-tests/batch/many-0716.txt",
+ "object-tests/batch/many-0717.txt",
+ "object-tests/batch/many-0718.txt",
+ "object-tests/batch/many-0719.txt",
+ "object-tests/batch/many-0720.txt",
+ "object-tests/batch/many-0721.txt",
+ "object-tests/batch/many-0722.txt",
+ "object-tests/batch/many-0723.txt",
+ "object-tests/batch/many-0724.txt",
+ "object-tests/batch/many-0725.txt",
+ "object-tests/batch/many-0726.txt",
+ "object-tests/batch/many-0727.txt",
+ "object-tests/batch/many-0728.txt",
+ "object-tests/batch/many-0729.txt",
+ "object-tests/batch/many-0730.txt",
+ "object-tests/batch/many-0731.txt",
+ "object-tests/batch/many-0732.txt",
+ "object-tests/batch/many-0733.txt",
+ "object-tests/batch/many-0734.txt",
+ "object-tests/batch/many-0735.txt",
+ "object-tests/batch/many-0736.txt",
+ "object-tests/batch/many-0737.txt",
+ "object-tests/batch/many-0738.txt",
+ "object-tests/batch/many-0739.txt",
+ "object-tests/batch/many-0740.txt",
+ "object-tests/batch/many-0741.txt",
+ "object-tests/batch/many-0742.txt",
+ "object-tests/batch/many-0743.txt",
+ "object-tests/batch/many-0744.txt",
+ "object-tests/batch/many-0745.txt",
+ "object-tests/batch/many-0746.txt",
+ "object-tests/batch/many-0747.txt",
+ "object-tests/batch/many-0748.txt",
+ "object-tests/batch/many-0749.txt",
+ "object-tests/batch/many-0750.txt",
+ "object-tests/batch/many-0751.txt",
+ "object-tests/batch/many-0752.txt",
+ "object-tests/batch/many-0753.txt",
+ "object-tests/batch/many-0754.txt",
+ "object-tests/batch/many-0755.txt",
+ "object-tests/batch/many-0756.txt",
+ "object-tests/batch/many-0757.txt",
+ "object-tests/batch/many-0758.txt",
+ "object-tests/batch/many-0759.txt",
+ "object-tests/batch/many-0760.txt",
+ "object-tests/batch/many-0761.txt",
+ "object-tests/batch/many-0762.txt",
+ "object-tests/batch/many-0763.txt",
+ "object-tests/batch/many-0764.txt",
+ "object-tests/batch/many-0765.txt",
+ "object-tests/batch/many-0766.txt",
+ "object-tests/batch/many-0767.txt",
+ "object-tests/batch/many-0768.txt",
+ "object-tests/batch/many-0769.txt",
+ "object-tests/batch/many-0770.txt",
+ "object-tests/batch/many-0771.txt",
+ "object-tests/batch/many-0772.txt",
+ "object-tests/batch/many-0773.txt",
+ "object-tests/batch/many-0774.txt",
+ "object-tests/batch/many-0775.txt",
+ "object-tests/batch/many-0776.txt",
+ "object-tests/batch/many-0777.txt",
+ "object-tests/batch/many-0778.txt",
+ "object-tests/batch/many-0779.txt",
+ "object-tests/batch/many-0780.txt",
+ "object-tests/batch/many-0781.txt",
+ "object-tests/batch/many-0782.txt",
+ "object-tests/batch/many-0783.txt",
+ "object-tests/batch/many-0784.txt",
+ "object-tests/batch/many-0785.txt",
+ "object-tests/batch/many-0786.txt",
+ "object-tests/batch/many-0787.txt",
+ "object-tests/batch/many-0788.txt",
+ "object-tests/batch/many-0789.txt",
+ "object-tests/batch/many-0790.txt",
+ "object-tests/batch/many-0791.txt",
+ "object-tests/batch/many-0792.txt",
+ "object-tests/batch/many-0793.txt",
+ "object-tests/batch/many-0794.txt",
+ "object-tests/batch/many-0795.txt",
+ "object-tests/batch/many-0796.txt",
+ "object-tests/batch/many-0797.txt",
+ "object-tests/batch/many-0798.txt",
+ "object-tests/batch/many-0799.txt",
+ "object-tests/batch/many-0800.txt",
+ "object-tests/batch/many-0801.txt",
+ "object-tests/batch/many-0802.txt",
+ "object-tests/batch/many-0803.txt",
+ "object-tests/batch/many-0804.txt",
+ "object-tests/batch/many-0805.txt",
+ "object-tests/batch/many-0806.txt",
+ "object-tests/batch/many-0807.txt",
+ "object-tests/batch/many-0808.txt",
+ "object-tests/batch/many-0809.txt",
+ "object-tests/batch/many-0810.txt",
+ "object-tests/batch/many-0811.txt",
+ "object-tests/batch/many-0812.txt",
+ "object-tests/batch/many-0813.txt",
+ "object-tests/batch/many-0814.txt",
+ "object-tests/batch/many-0815.txt",
+ "object-tests/batch/many-0816.txt",
+ "object-tests/batch/many-0817.txt",
+ "object-tests/batch/many-0818.txt",
+ "object-tests/batch/many-0819.txt",
+ "object-tests/batch/many-0820.txt",
+ "object-tests/batch/many-0821.txt",
+ "object-tests/batch/many-0822.txt",
+ "object-tests/batch/many-0823.txt",
+ "object-tests/batch/many-0824.txt",
+ "object-tests/batch/many-0825.txt",
+ "object-tests/batch/many-0826.txt",
+ "object-tests/batch/many-0827.txt",
+ "object-tests/batch/many-0828.txt",
+ "object-tests/batch/many-0829.txt",
+ "object-tests/batch/many-0830.txt",
+ "object-tests/batch/many-0831.txt",
+ "object-tests/batch/many-0832.txt",
+ "object-tests/batch/many-0833.txt",
+ "object-tests/batch/many-0834.txt",
+ "object-tests/batch/many-0835.txt",
+ "object-tests/batch/many-0836.txt",
+ "object-tests/batch/many-0837.txt",
+ "object-tests/batch/many-0838.txt",
+ "object-tests/batch/many-0839.txt",
+ "object-tests/batch/many-0840.txt",
+ "object-tests/batch/many-0841.txt",
+ "object-tests/batch/many-0842.txt",
+ "object-tests/batch/many-0843.txt",
+ "object-tests/batch/many-0844.txt",
+ "object-tests/batch/many-0845.txt",
+ "object-tests/batch/many-0846.txt",
+ "object-tests/batch/many-0847.txt",
+ "object-tests/batch/many-0848.txt",
+ "object-tests/batch/many-0849.txt",
+ "object-tests/batch/many-0850.txt",
+ "object-tests/batch/many-0851.txt",
+ "object-tests/batch/many-0852.txt",
+ "object-tests/batch/many-0853.txt",
+ "object-tests/batch/many-0854.txt",
+ "object-tests/batch/many-0855.txt",
+ "object-tests/batch/many-0856.txt",
+ "object-tests/batch/many-0857.txt",
+ "object-tests/batch/many-0858.txt",
+ "object-tests/batch/many-0859.txt",
+ "object-tests/batch/many-0860.txt",
+ "object-tests/batch/many-0861.txt",
+ "object-tests/batch/many-0862.txt",
+ "object-tests/batch/many-0863.txt",
+ "object-tests/batch/many-0864.txt",
+ "object-tests/batch/many-0865.txt",
+ "object-tests/batch/many-0866.txt",
+ "object-tests/batch/many-0867.txt",
+ "object-tests/batch/many-0868.txt",
+ "object-tests/batch/many-0869.txt",
+ "object-tests/batch/many-0870.txt",
+ "object-tests/batch/many-0871.txt",
+ "object-tests/batch/many-0872.txt",
+ "object-tests/batch/many-0873.txt",
+ "object-tests/batch/many-0874.txt",
+ "object-tests/batch/many-0875.txt",
+ "object-tests/batch/many-0876.txt",
+ "object-tests/batch/many-0877.txt",
+ "object-tests/batch/many-0878.txt",
+ "object-tests/batch/many-0879.txt",
+ "object-tests/batch/many-0880.txt",
+ "object-tests/batch/many-0881.txt",
+ "object-tests/batch/many-0882.txt",
+ "object-tests/batch/many-0883.txt",
+ "object-tests/batch/many-0884.txt",
+ "object-tests/batch/many-0885.txt",
+ "object-tests/batch/many-0886.txt",
+ "object-tests/batch/many-0887.txt",
+ "object-tests/batch/many-0888.txt",
+ "object-tests/batch/many-0889.txt",
+ "object-tests/batch/many-0890.txt",
+ "object-tests/batch/many-0891.txt",
+ "object-tests/batch/many-0892.txt",
+ "object-tests/batch/many-0893.txt",
+ "object-tests/batch/many-0894.txt",
+ "object-tests/batch/many-0895.txt",
+ "object-tests/batch/many-0896.txt",
+ "object-tests/batch/many-0897.txt",
+ "object-tests/batch/many-0898.txt",
+ "object-tests/batch/many-0899.txt",
+ "object-tests/batch/many-0900.txt",
+ "object-tests/batch/many-0901.txt",
+ "object-tests/batch/many-0902.txt",
+ "object-tests/batch/many-0903.txt",
+ "object-tests/batch/many-0904.txt",
+ "object-tests/batch/many-0905.txt",
+ "object-tests/batch/many-0906.txt",
+ "object-tests/batch/many-0907.txt",
+ "object-tests/batch/many-0908.txt",
+ "object-tests/batch/many-0909.txt",
+ "object-tests/batch/many-0910.txt",
+ "object-tests/batch/many-0911.txt",
+ "object-tests/batch/many-0912.txt",
+ "object-tests/batch/many-0913.txt",
+ "object-tests/batch/many-0914.txt",
+ "object-tests/batch/many-0915.txt",
+ "object-tests/batch/many-0916.txt",
+ "object-tests/batch/many-0917.txt",
+ "object-tests/batch/many-0918.txt",
+ "object-tests/batch/many-0919.txt",
+ "object-tests/batch/many-0920.txt",
+ "object-tests/batch/many-0921.txt",
+ "object-tests/batch/many-0922.txt",
+ "object-tests/batch/many-0923.txt",
+ "object-tests/batch/many-0924.txt",
+ "object-tests/batch/many-0925.txt",
+ "object-tests/batch/many-0926.txt",
+ "object-tests/batch/many-0927.txt",
+ "object-tests/batch/many-0928.txt",
+ "object-tests/batch/many-0929.txt",
+ "object-tests/batch/many-0930.txt",
+ "object-tests/batch/many-0931.txt",
+ "object-tests/batch/many-0932.txt",
+ "object-tests/batch/many-0933.txt",
+ "object-tests/batch/many-0934.txt",
+ "object-tests/batch/many-0935.txt",
+ "object-tests/batch/many-0936.txt",
+ "object-tests/batch/many-0937.txt",
+ "object-tests/batch/many-0938.txt",
+ "object-tests/batch/many-0939.txt",
+ "object-tests/batch/many-0940.txt",
+ "object-tests/batch/many-0941.txt",
+ "object-tests/batch/many-0942.txt",
+ "object-tests/batch/many-0943.txt",
+ "object-tests/batch/many-0944.txt",
+ "object-tests/batch/many-0945.txt",
+ "object-tests/batch/many-0946.txt",
+ "object-tests/batch/many-0947.txt",
+ "object-tests/batch/many-0948.txt",
+ "object-tests/batch/many-0949.txt",
+ "object-tests/batch/many-0950.txt",
+ "object-tests/batch/many-0951.txt",
+ "object-tests/batch/many-0952.txt",
+ "object-tests/batch/many-0953.txt",
+ "object-tests/batch/many-0954.txt",
+ "object-tests/batch/many-0955.txt",
+ "object-tests/batch/many-0956.txt",
+ "object-tests/batch/many-0957.txt",
+ "object-tests/batch/many-0958.txt",
+ "object-tests/batch/many-0959.txt",
+ "object-tests/batch/many-0960.txt",
+ "object-tests/batch/many-0961.txt",
+ "object-tests/batch/many-0962.txt",
+ "object-tests/batch/many-0963.txt",
+ "object-tests/batch/many-0964.txt",
+ "object-tests/batch/many-0965.txt",
+ "object-tests/batch/many-0966.txt",
+ "object-tests/batch/many-0967.txt",
+ "object-tests/batch/many-0968.txt",
+ "object-tests/batch/many-0969.txt",
+ "object-tests/batch/many-0970.txt",
+ "object-tests/batch/many-0971.txt",
+ "object-tests/batch/many-0972.txt",
+ "object-tests/batch/many-0973.txt",
+ "object-tests/batch/many-0974.txt",
+ "object-tests/batch/many-0975.txt",
+ "object-tests/batch/many-0976.txt",
+ "object-tests/batch/many-0977.txt",
+ "object-tests/batch/many-0978.txt",
+ "object-tests/batch/many-0979.txt",
+ "object-tests/batch/many-0980.txt",
+ "object-tests/batch/many-0981.txt",
+ "object-tests/batch/many-0982.txt",
+ "object-tests/batch/many-0983.txt",
+ "object-tests/batch/many-0984.txt",
+ "object-tests/batch/many-0985.txt",
+ "object-tests/batch/many-0986.txt",
+ "object-tests/batch/many-0987.txt",
+ "object-tests/batch/many-0988.txt",
+ "object-tests/batch/many-0989.txt",
+ "object-tests/batch/many-0990.txt",
+ "object-tests/batch/many-0991.txt",
+ "object-tests/batch/many-0992.txt",
+ "object-tests/batch/many-0993.txt",
+ "object-tests/batch/many-0994.txt",
+ "object-tests/batch/many-0995.txt",
+ "object-tests/batch/many-0996.txt",
+ "object-tests/batch/many-0997.txt",
+ "object-tests/batch/many-0998.txt",
+ "object-tests/batch/many-0999.txt"
+ ]
+ }
+ },
+ {
+ "at": "/value/errors",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": []
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/delete-many-1001",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Report a DeleteObjects request of 1,001 keys, one more than S3 takes, as an error. A client may refuse it before sending",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html"
+ ],
+ "call": {
+ "keys": [
+ "object-tests/batch/many-0000.txt",
+ "object-tests/batch/many-0001.txt",
+ "object-tests/batch/many-0002.txt",
+ "object-tests/batch/many-0003.txt",
+ "object-tests/batch/many-0004.txt",
+ "object-tests/batch/many-0005.txt",
+ "object-tests/batch/many-0006.txt",
+ "object-tests/batch/many-0007.txt",
+ "object-tests/batch/many-0008.txt",
+ "object-tests/batch/many-0009.txt",
+ "object-tests/batch/many-0010.txt",
+ "object-tests/batch/many-0011.txt",
+ "object-tests/batch/many-0012.txt",
+ "object-tests/batch/many-0013.txt",
+ "object-tests/batch/many-0014.txt",
+ "object-tests/batch/many-0015.txt",
+ "object-tests/batch/many-0016.txt",
+ "object-tests/batch/many-0017.txt",
+ "object-tests/batch/many-0018.txt",
+ "object-tests/batch/many-0019.txt",
+ "object-tests/batch/many-0020.txt",
+ "object-tests/batch/many-0021.txt",
+ "object-tests/batch/many-0022.txt",
+ "object-tests/batch/many-0023.txt",
+ "object-tests/batch/many-0024.txt",
+ "object-tests/batch/many-0025.txt",
+ "object-tests/batch/many-0026.txt",
+ "object-tests/batch/many-0027.txt",
+ "object-tests/batch/many-0028.txt",
+ "object-tests/batch/many-0029.txt",
+ "object-tests/batch/many-0030.txt",
+ "object-tests/batch/many-0031.txt",
+ "object-tests/batch/many-0032.txt",
+ "object-tests/batch/many-0033.txt",
+ "object-tests/batch/many-0034.txt",
+ "object-tests/batch/many-0035.txt",
+ "object-tests/batch/many-0036.txt",
+ "object-tests/batch/many-0037.txt",
+ "object-tests/batch/many-0038.txt",
+ "object-tests/batch/many-0039.txt",
+ "object-tests/batch/many-0040.txt",
+ "object-tests/batch/many-0041.txt",
+ "object-tests/batch/many-0042.txt",
+ "object-tests/batch/many-0043.txt",
+ "object-tests/batch/many-0044.txt",
+ "object-tests/batch/many-0045.txt",
+ "object-tests/batch/many-0046.txt",
+ "object-tests/batch/many-0047.txt",
+ "object-tests/batch/many-0048.txt",
+ "object-tests/batch/many-0049.txt",
+ "object-tests/batch/many-0050.txt",
+ "object-tests/batch/many-0051.txt",
+ "object-tests/batch/many-0052.txt",
+ "object-tests/batch/many-0053.txt",
+ "object-tests/batch/many-0054.txt",
+ "object-tests/batch/many-0055.txt",
+ "object-tests/batch/many-0056.txt",
+ "object-tests/batch/many-0057.txt",
+ "object-tests/batch/many-0058.txt",
+ "object-tests/batch/many-0059.txt",
+ "object-tests/batch/many-0060.txt",
+ "object-tests/batch/many-0061.txt",
+ "object-tests/batch/many-0062.txt",
+ "object-tests/batch/many-0063.txt",
+ "object-tests/batch/many-0064.txt",
+ "object-tests/batch/many-0065.txt",
+ "object-tests/batch/many-0066.txt",
+ "object-tests/batch/many-0067.txt",
+ "object-tests/batch/many-0068.txt",
+ "object-tests/batch/many-0069.txt",
+ "object-tests/batch/many-0070.txt",
+ "object-tests/batch/many-0071.txt",
+ "object-tests/batch/many-0072.txt",
+ "object-tests/batch/many-0073.txt",
+ "object-tests/batch/many-0074.txt",
+ "object-tests/batch/many-0075.txt",
+ "object-tests/batch/many-0076.txt",
+ "object-tests/batch/many-0077.txt",
+ "object-tests/batch/many-0078.txt",
+ "object-tests/batch/many-0079.txt",
+ "object-tests/batch/many-0080.txt",
+ "object-tests/batch/many-0081.txt",
+ "object-tests/batch/many-0082.txt",
+ "object-tests/batch/many-0083.txt",
+ "object-tests/batch/many-0084.txt",
+ "object-tests/batch/many-0085.txt",
+ "object-tests/batch/many-0086.txt",
+ "object-tests/batch/many-0087.txt",
+ "object-tests/batch/many-0088.txt",
+ "object-tests/batch/many-0089.txt",
+ "object-tests/batch/many-0090.txt",
+ "object-tests/batch/many-0091.txt",
+ "object-tests/batch/many-0092.txt",
+ "object-tests/batch/many-0093.txt",
+ "object-tests/batch/many-0094.txt",
+ "object-tests/batch/many-0095.txt",
+ "object-tests/batch/many-0096.txt",
+ "object-tests/batch/many-0097.txt",
+ "object-tests/batch/many-0098.txt",
+ "object-tests/batch/many-0099.txt",
+ "object-tests/batch/many-0100.txt",
+ "object-tests/batch/many-0101.txt",
+ "object-tests/batch/many-0102.txt",
+ "object-tests/batch/many-0103.txt",
+ "object-tests/batch/many-0104.txt",
+ "object-tests/batch/many-0105.txt",
+ "object-tests/batch/many-0106.txt",
+ "object-tests/batch/many-0107.txt",
+ "object-tests/batch/many-0108.txt",
+ "object-tests/batch/many-0109.txt",
+ "object-tests/batch/many-0110.txt",
+ "object-tests/batch/many-0111.txt",
+ "object-tests/batch/many-0112.txt",
+ "object-tests/batch/many-0113.txt",
+ "object-tests/batch/many-0114.txt",
+ "object-tests/batch/many-0115.txt",
+ "object-tests/batch/many-0116.txt",
+ "object-tests/batch/many-0117.txt",
+ "object-tests/batch/many-0118.txt",
+ "object-tests/batch/many-0119.txt",
+ "object-tests/batch/many-0120.txt",
+ "object-tests/batch/many-0121.txt",
+ "object-tests/batch/many-0122.txt",
+ "object-tests/batch/many-0123.txt",
+ "object-tests/batch/many-0124.txt",
+ "object-tests/batch/many-0125.txt",
+ "object-tests/batch/many-0126.txt",
+ "object-tests/batch/many-0127.txt",
+ "object-tests/batch/many-0128.txt",
+ "object-tests/batch/many-0129.txt",
+ "object-tests/batch/many-0130.txt",
+ "object-tests/batch/many-0131.txt",
+ "object-tests/batch/many-0132.txt",
+ "object-tests/batch/many-0133.txt",
+ "object-tests/batch/many-0134.txt",
+ "object-tests/batch/many-0135.txt",
+ "object-tests/batch/many-0136.txt",
+ "object-tests/batch/many-0137.txt",
+ "object-tests/batch/many-0138.txt",
+ "object-tests/batch/many-0139.txt",
+ "object-tests/batch/many-0140.txt",
+ "object-tests/batch/many-0141.txt",
+ "object-tests/batch/many-0142.txt",
+ "object-tests/batch/many-0143.txt",
+ "object-tests/batch/many-0144.txt",
+ "object-tests/batch/many-0145.txt",
+ "object-tests/batch/many-0146.txt",
+ "object-tests/batch/many-0147.txt",
+ "object-tests/batch/many-0148.txt",
+ "object-tests/batch/many-0149.txt",
+ "object-tests/batch/many-0150.txt",
+ "object-tests/batch/many-0151.txt",
+ "object-tests/batch/many-0152.txt",
+ "object-tests/batch/many-0153.txt",
+ "object-tests/batch/many-0154.txt",
+ "object-tests/batch/many-0155.txt",
+ "object-tests/batch/many-0156.txt",
+ "object-tests/batch/many-0157.txt",
+ "object-tests/batch/many-0158.txt",
+ "object-tests/batch/many-0159.txt",
+ "object-tests/batch/many-0160.txt",
+ "object-tests/batch/many-0161.txt",
+ "object-tests/batch/many-0162.txt",
+ "object-tests/batch/many-0163.txt",
+ "object-tests/batch/many-0164.txt",
+ "object-tests/batch/many-0165.txt",
+ "object-tests/batch/many-0166.txt",
+ "object-tests/batch/many-0167.txt",
+ "object-tests/batch/many-0168.txt",
+ "object-tests/batch/many-0169.txt",
+ "object-tests/batch/many-0170.txt",
+ "object-tests/batch/many-0171.txt",
+ "object-tests/batch/many-0172.txt",
+ "object-tests/batch/many-0173.txt",
+ "object-tests/batch/many-0174.txt",
+ "object-tests/batch/many-0175.txt",
+ "object-tests/batch/many-0176.txt",
+ "object-tests/batch/many-0177.txt",
+ "object-tests/batch/many-0178.txt",
+ "object-tests/batch/many-0179.txt",
+ "object-tests/batch/many-0180.txt",
+ "object-tests/batch/many-0181.txt",
+ "object-tests/batch/many-0182.txt",
+ "object-tests/batch/many-0183.txt",
+ "object-tests/batch/many-0184.txt",
+ "object-tests/batch/many-0185.txt",
+ "object-tests/batch/many-0186.txt",
+ "object-tests/batch/many-0187.txt",
+ "object-tests/batch/many-0188.txt",
+ "object-tests/batch/many-0189.txt",
+ "object-tests/batch/many-0190.txt",
+ "object-tests/batch/many-0191.txt",
+ "object-tests/batch/many-0192.txt",
+ "object-tests/batch/many-0193.txt",
+ "object-tests/batch/many-0194.txt",
+ "object-tests/batch/many-0195.txt",
+ "object-tests/batch/many-0196.txt",
+ "object-tests/batch/many-0197.txt",
+ "object-tests/batch/many-0198.txt",
+ "object-tests/batch/many-0199.txt",
+ "object-tests/batch/many-0200.txt",
+ "object-tests/batch/many-0201.txt",
+ "object-tests/batch/many-0202.txt",
+ "object-tests/batch/many-0203.txt",
+ "object-tests/batch/many-0204.txt",
+ "object-tests/batch/many-0205.txt",
+ "object-tests/batch/many-0206.txt",
+ "object-tests/batch/many-0207.txt",
+ "object-tests/batch/many-0208.txt",
+ "object-tests/batch/many-0209.txt",
+ "object-tests/batch/many-0210.txt",
+ "object-tests/batch/many-0211.txt",
+ "object-tests/batch/many-0212.txt",
+ "object-tests/batch/many-0213.txt",
+ "object-tests/batch/many-0214.txt",
+ "object-tests/batch/many-0215.txt",
+ "object-tests/batch/many-0216.txt",
+ "object-tests/batch/many-0217.txt",
+ "object-tests/batch/many-0218.txt",
+ "object-tests/batch/many-0219.txt",
+ "object-tests/batch/many-0220.txt",
+ "object-tests/batch/many-0221.txt",
+ "object-tests/batch/many-0222.txt",
+ "object-tests/batch/many-0223.txt",
+ "object-tests/batch/many-0224.txt",
+ "object-tests/batch/many-0225.txt",
+ "object-tests/batch/many-0226.txt",
+ "object-tests/batch/many-0227.txt",
+ "object-tests/batch/many-0228.txt",
+ "object-tests/batch/many-0229.txt",
+ "object-tests/batch/many-0230.txt",
+ "object-tests/batch/many-0231.txt",
+ "object-tests/batch/many-0232.txt",
+ "object-tests/batch/many-0233.txt",
+ "object-tests/batch/many-0234.txt",
+ "object-tests/batch/many-0235.txt",
+ "object-tests/batch/many-0236.txt",
+ "object-tests/batch/many-0237.txt",
+ "object-tests/batch/many-0238.txt",
+ "object-tests/batch/many-0239.txt",
+ "object-tests/batch/many-0240.txt",
+ "object-tests/batch/many-0241.txt",
+ "object-tests/batch/many-0242.txt",
+ "object-tests/batch/many-0243.txt",
+ "object-tests/batch/many-0244.txt",
+ "object-tests/batch/many-0245.txt",
+ "object-tests/batch/many-0246.txt",
+ "object-tests/batch/many-0247.txt",
+ "object-tests/batch/many-0248.txt",
+ "object-tests/batch/many-0249.txt",
+ "object-tests/batch/many-0250.txt",
+ "object-tests/batch/many-0251.txt",
+ "object-tests/batch/many-0252.txt",
+ "object-tests/batch/many-0253.txt",
+ "object-tests/batch/many-0254.txt",
+ "object-tests/batch/many-0255.txt",
+ "object-tests/batch/many-0256.txt",
+ "object-tests/batch/many-0257.txt",
+ "object-tests/batch/many-0258.txt",
+ "object-tests/batch/many-0259.txt",
+ "object-tests/batch/many-0260.txt",
+ "object-tests/batch/many-0261.txt",
+ "object-tests/batch/many-0262.txt",
+ "object-tests/batch/many-0263.txt",
+ "object-tests/batch/many-0264.txt",
+ "object-tests/batch/many-0265.txt",
+ "object-tests/batch/many-0266.txt",
+ "object-tests/batch/many-0267.txt",
+ "object-tests/batch/many-0268.txt",
+ "object-tests/batch/many-0269.txt",
+ "object-tests/batch/many-0270.txt",
+ "object-tests/batch/many-0271.txt",
+ "object-tests/batch/many-0272.txt",
+ "object-tests/batch/many-0273.txt",
+ "object-tests/batch/many-0274.txt",
+ "object-tests/batch/many-0275.txt",
+ "object-tests/batch/many-0276.txt",
+ "object-tests/batch/many-0277.txt",
+ "object-tests/batch/many-0278.txt",
+ "object-tests/batch/many-0279.txt",
+ "object-tests/batch/many-0280.txt",
+ "object-tests/batch/many-0281.txt",
+ "object-tests/batch/many-0282.txt",
+ "object-tests/batch/many-0283.txt",
+ "object-tests/batch/many-0284.txt",
+ "object-tests/batch/many-0285.txt",
+ "object-tests/batch/many-0286.txt",
+ "object-tests/batch/many-0287.txt",
+ "object-tests/batch/many-0288.txt",
+ "object-tests/batch/many-0289.txt",
+ "object-tests/batch/many-0290.txt",
+ "object-tests/batch/many-0291.txt",
+ "object-tests/batch/many-0292.txt",
+ "object-tests/batch/many-0293.txt",
+ "object-tests/batch/many-0294.txt",
+ "object-tests/batch/many-0295.txt",
+ "object-tests/batch/many-0296.txt",
+ "object-tests/batch/many-0297.txt",
+ "object-tests/batch/many-0298.txt",
+ "object-tests/batch/many-0299.txt",
+ "object-tests/batch/many-0300.txt",
+ "object-tests/batch/many-0301.txt",
+ "object-tests/batch/many-0302.txt",
+ "object-tests/batch/many-0303.txt",
+ "object-tests/batch/many-0304.txt",
+ "object-tests/batch/many-0305.txt",
+ "object-tests/batch/many-0306.txt",
+ "object-tests/batch/many-0307.txt",
+ "object-tests/batch/many-0308.txt",
+ "object-tests/batch/many-0309.txt",
+ "object-tests/batch/many-0310.txt",
+ "object-tests/batch/many-0311.txt",
+ "object-tests/batch/many-0312.txt",
+ "object-tests/batch/many-0313.txt",
+ "object-tests/batch/many-0314.txt",
+ "object-tests/batch/many-0315.txt",
+ "object-tests/batch/many-0316.txt",
+ "object-tests/batch/many-0317.txt",
+ "object-tests/batch/many-0318.txt",
+ "object-tests/batch/many-0319.txt",
+ "object-tests/batch/many-0320.txt",
+ "object-tests/batch/many-0321.txt",
+ "object-tests/batch/many-0322.txt",
+ "object-tests/batch/many-0323.txt",
+ "object-tests/batch/many-0324.txt",
+ "object-tests/batch/many-0325.txt",
+ "object-tests/batch/many-0326.txt",
+ "object-tests/batch/many-0327.txt",
+ "object-tests/batch/many-0328.txt",
+ "object-tests/batch/many-0329.txt",
+ "object-tests/batch/many-0330.txt",
+ "object-tests/batch/many-0331.txt",
+ "object-tests/batch/many-0332.txt",
+ "object-tests/batch/many-0333.txt",
+ "object-tests/batch/many-0334.txt",
+ "object-tests/batch/many-0335.txt",
+ "object-tests/batch/many-0336.txt",
+ "object-tests/batch/many-0337.txt",
+ "object-tests/batch/many-0338.txt",
+ "object-tests/batch/many-0339.txt",
+ "object-tests/batch/many-0340.txt",
+ "object-tests/batch/many-0341.txt",
+ "object-tests/batch/many-0342.txt",
+ "object-tests/batch/many-0343.txt",
+ "object-tests/batch/many-0344.txt",
+ "object-tests/batch/many-0345.txt",
+ "object-tests/batch/many-0346.txt",
+ "object-tests/batch/many-0347.txt",
+ "object-tests/batch/many-0348.txt",
+ "object-tests/batch/many-0349.txt",
+ "object-tests/batch/many-0350.txt",
+ "object-tests/batch/many-0351.txt",
+ "object-tests/batch/many-0352.txt",
+ "object-tests/batch/many-0353.txt",
+ "object-tests/batch/many-0354.txt",
+ "object-tests/batch/many-0355.txt",
+ "object-tests/batch/many-0356.txt",
+ "object-tests/batch/many-0357.txt",
+ "object-tests/batch/many-0358.txt",
+ "object-tests/batch/many-0359.txt",
+ "object-tests/batch/many-0360.txt",
+ "object-tests/batch/many-0361.txt",
+ "object-tests/batch/many-0362.txt",
+ "object-tests/batch/many-0363.txt",
+ "object-tests/batch/many-0364.txt",
+ "object-tests/batch/many-0365.txt",
+ "object-tests/batch/many-0366.txt",
+ "object-tests/batch/many-0367.txt",
+ "object-tests/batch/many-0368.txt",
+ "object-tests/batch/many-0369.txt",
+ "object-tests/batch/many-0370.txt",
+ "object-tests/batch/many-0371.txt",
+ "object-tests/batch/many-0372.txt",
+ "object-tests/batch/many-0373.txt",
+ "object-tests/batch/many-0374.txt",
+ "object-tests/batch/many-0375.txt",
+ "object-tests/batch/many-0376.txt",
+ "object-tests/batch/many-0377.txt",
+ "object-tests/batch/many-0378.txt",
+ "object-tests/batch/many-0379.txt",
+ "object-tests/batch/many-0380.txt",
+ "object-tests/batch/many-0381.txt",
+ "object-tests/batch/many-0382.txt",
+ "object-tests/batch/many-0383.txt",
+ "object-tests/batch/many-0384.txt",
+ "object-tests/batch/many-0385.txt",
+ "object-tests/batch/many-0386.txt",
+ "object-tests/batch/many-0387.txt",
+ "object-tests/batch/many-0388.txt",
+ "object-tests/batch/many-0389.txt",
+ "object-tests/batch/many-0390.txt",
+ "object-tests/batch/many-0391.txt",
+ "object-tests/batch/many-0392.txt",
+ "object-tests/batch/many-0393.txt",
+ "object-tests/batch/many-0394.txt",
+ "object-tests/batch/many-0395.txt",
+ "object-tests/batch/many-0396.txt",
+ "object-tests/batch/many-0397.txt",
+ "object-tests/batch/many-0398.txt",
+ "object-tests/batch/many-0399.txt",
+ "object-tests/batch/many-0400.txt",
+ "object-tests/batch/many-0401.txt",
+ "object-tests/batch/many-0402.txt",
+ "object-tests/batch/many-0403.txt",
+ "object-tests/batch/many-0404.txt",
+ "object-tests/batch/many-0405.txt",
+ "object-tests/batch/many-0406.txt",
+ "object-tests/batch/many-0407.txt",
+ "object-tests/batch/many-0408.txt",
+ "object-tests/batch/many-0409.txt",
+ "object-tests/batch/many-0410.txt",
+ "object-tests/batch/many-0411.txt",
+ "object-tests/batch/many-0412.txt",
+ "object-tests/batch/many-0413.txt",
+ "object-tests/batch/many-0414.txt",
+ "object-tests/batch/many-0415.txt",
+ "object-tests/batch/many-0416.txt",
+ "object-tests/batch/many-0417.txt",
+ "object-tests/batch/many-0418.txt",
+ "object-tests/batch/many-0419.txt",
+ "object-tests/batch/many-0420.txt",
+ "object-tests/batch/many-0421.txt",
+ "object-tests/batch/many-0422.txt",
+ "object-tests/batch/many-0423.txt",
+ "object-tests/batch/many-0424.txt",
+ "object-tests/batch/many-0425.txt",
+ "object-tests/batch/many-0426.txt",
+ "object-tests/batch/many-0427.txt",
+ "object-tests/batch/many-0428.txt",
+ "object-tests/batch/many-0429.txt",
+ "object-tests/batch/many-0430.txt",
+ "object-tests/batch/many-0431.txt",
+ "object-tests/batch/many-0432.txt",
+ "object-tests/batch/many-0433.txt",
+ "object-tests/batch/many-0434.txt",
+ "object-tests/batch/many-0435.txt",
+ "object-tests/batch/many-0436.txt",
+ "object-tests/batch/many-0437.txt",
+ "object-tests/batch/many-0438.txt",
+ "object-tests/batch/many-0439.txt",
+ "object-tests/batch/many-0440.txt",
+ "object-tests/batch/many-0441.txt",
+ "object-tests/batch/many-0442.txt",
+ "object-tests/batch/many-0443.txt",
+ "object-tests/batch/many-0444.txt",
+ "object-tests/batch/many-0445.txt",
+ "object-tests/batch/many-0446.txt",
+ "object-tests/batch/many-0447.txt",
+ "object-tests/batch/many-0448.txt",
+ "object-tests/batch/many-0449.txt",
+ "object-tests/batch/many-0450.txt",
+ "object-tests/batch/many-0451.txt",
+ "object-tests/batch/many-0452.txt",
+ "object-tests/batch/many-0453.txt",
+ "object-tests/batch/many-0454.txt",
+ "object-tests/batch/many-0455.txt",
+ "object-tests/batch/many-0456.txt",
+ "object-tests/batch/many-0457.txt",
+ "object-tests/batch/many-0458.txt",
+ "object-tests/batch/many-0459.txt",
+ "object-tests/batch/many-0460.txt",
+ "object-tests/batch/many-0461.txt",
+ "object-tests/batch/many-0462.txt",
+ "object-tests/batch/many-0463.txt",
+ "object-tests/batch/many-0464.txt",
+ "object-tests/batch/many-0465.txt",
+ "object-tests/batch/many-0466.txt",
+ "object-tests/batch/many-0467.txt",
+ "object-tests/batch/many-0468.txt",
+ "object-tests/batch/many-0469.txt",
+ "object-tests/batch/many-0470.txt",
+ "object-tests/batch/many-0471.txt",
+ "object-tests/batch/many-0472.txt",
+ "object-tests/batch/many-0473.txt",
+ "object-tests/batch/many-0474.txt",
+ "object-tests/batch/many-0475.txt",
+ "object-tests/batch/many-0476.txt",
+ "object-tests/batch/many-0477.txt",
+ "object-tests/batch/many-0478.txt",
+ "object-tests/batch/many-0479.txt",
+ "object-tests/batch/many-0480.txt",
+ "object-tests/batch/many-0481.txt",
+ "object-tests/batch/many-0482.txt",
+ "object-tests/batch/many-0483.txt",
+ "object-tests/batch/many-0484.txt",
+ "object-tests/batch/many-0485.txt",
+ "object-tests/batch/many-0486.txt",
+ "object-tests/batch/many-0487.txt",
+ "object-tests/batch/many-0488.txt",
+ "object-tests/batch/many-0489.txt",
+ "object-tests/batch/many-0490.txt",
+ "object-tests/batch/many-0491.txt",
+ "object-tests/batch/many-0492.txt",
+ "object-tests/batch/many-0493.txt",
+ "object-tests/batch/many-0494.txt",
+ "object-tests/batch/many-0495.txt",
+ "object-tests/batch/many-0496.txt",
+ "object-tests/batch/many-0497.txt",
+ "object-tests/batch/many-0498.txt",
+ "object-tests/batch/many-0499.txt",
+ "object-tests/batch/many-0500.txt",
+ "object-tests/batch/many-0501.txt",
+ "object-tests/batch/many-0502.txt",
+ "object-tests/batch/many-0503.txt",
+ "object-tests/batch/many-0504.txt",
+ "object-tests/batch/many-0505.txt",
+ "object-tests/batch/many-0506.txt",
+ "object-tests/batch/many-0507.txt",
+ "object-tests/batch/many-0508.txt",
+ "object-tests/batch/many-0509.txt",
+ "object-tests/batch/many-0510.txt",
+ "object-tests/batch/many-0511.txt",
+ "object-tests/batch/many-0512.txt",
+ "object-tests/batch/many-0513.txt",
+ "object-tests/batch/many-0514.txt",
+ "object-tests/batch/many-0515.txt",
+ "object-tests/batch/many-0516.txt",
+ "object-tests/batch/many-0517.txt",
+ "object-tests/batch/many-0518.txt",
+ "object-tests/batch/many-0519.txt",
+ "object-tests/batch/many-0520.txt",
+ "object-tests/batch/many-0521.txt",
+ "object-tests/batch/many-0522.txt",
+ "object-tests/batch/many-0523.txt",
+ "object-tests/batch/many-0524.txt",
+ "object-tests/batch/many-0525.txt",
+ "object-tests/batch/many-0526.txt",
+ "object-tests/batch/many-0527.txt",
+ "object-tests/batch/many-0528.txt",
+ "object-tests/batch/many-0529.txt",
+ "object-tests/batch/many-0530.txt",
+ "object-tests/batch/many-0531.txt",
+ "object-tests/batch/many-0532.txt",
+ "object-tests/batch/many-0533.txt",
+ "object-tests/batch/many-0534.txt",
+ "object-tests/batch/many-0535.txt",
+ "object-tests/batch/many-0536.txt",
+ "object-tests/batch/many-0537.txt",
+ "object-tests/batch/many-0538.txt",
+ "object-tests/batch/many-0539.txt",
+ "object-tests/batch/many-0540.txt",
+ "object-tests/batch/many-0541.txt",
+ "object-tests/batch/many-0542.txt",
+ "object-tests/batch/many-0543.txt",
+ "object-tests/batch/many-0544.txt",
+ "object-tests/batch/many-0545.txt",
+ "object-tests/batch/many-0546.txt",
+ "object-tests/batch/many-0547.txt",
+ "object-tests/batch/many-0548.txt",
+ "object-tests/batch/many-0549.txt",
+ "object-tests/batch/many-0550.txt",
+ "object-tests/batch/many-0551.txt",
+ "object-tests/batch/many-0552.txt",
+ "object-tests/batch/many-0553.txt",
+ "object-tests/batch/many-0554.txt",
+ "object-tests/batch/many-0555.txt",
+ "object-tests/batch/many-0556.txt",
+ "object-tests/batch/many-0557.txt",
+ "object-tests/batch/many-0558.txt",
+ "object-tests/batch/many-0559.txt",
+ "object-tests/batch/many-0560.txt",
+ "object-tests/batch/many-0561.txt",
+ "object-tests/batch/many-0562.txt",
+ "object-tests/batch/many-0563.txt",
+ "object-tests/batch/many-0564.txt",
+ "object-tests/batch/many-0565.txt",
+ "object-tests/batch/many-0566.txt",
+ "object-tests/batch/many-0567.txt",
+ "object-tests/batch/many-0568.txt",
+ "object-tests/batch/many-0569.txt",
+ "object-tests/batch/many-0570.txt",
+ "object-tests/batch/many-0571.txt",
+ "object-tests/batch/many-0572.txt",
+ "object-tests/batch/many-0573.txt",
+ "object-tests/batch/many-0574.txt",
+ "object-tests/batch/many-0575.txt",
+ "object-tests/batch/many-0576.txt",
+ "object-tests/batch/many-0577.txt",
+ "object-tests/batch/many-0578.txt",
+ "object-tests/batch/many-0579.txt",
+ "object-tests/batch/many-0580.txt",
+ "object-tests/batch/many-0581.txt",
+ "object-tests/batch/many-0582.txt",
+ "object-tests/batch/many-0583.txt",
+ "object-tests/batch/many-0584.txt",
+ "object-tests/batch/many-0585.txt",
+ "object-tests/batch/many-0586.txt",
+ "object-tests/batch/many-0587.txt",
+ "object-tests/batch/many-0588.txt",
+ "object-tests/batch/many-0589.txt",
+ "object-tests/batch/many-0590.txt",
+ "object-tests/batch/many-0591.txt",
+ "object-tests/batch/many-0592.txt",
+ "object-tests/batch/many-0593.txt",
+ "object-tests/batch/many-0594.txt",
+ "object-tests/batch/many-0595.txt",
+ "object-tests/batch/many-0596.txt",
+ "object-tests/batch/many-0597.txt",
+ "object-tests/batch/many-0598.txt",
+ "object-tests/batch/many-0599.txt",
+ "object-tests/batch/many-0600.txt",
+ "object-tests/batch/many-0601.txt",
+ "object-tests/batch/many-0602.txt",
+ "object-tests/batch/many-0603.txt",
+ "object-tests/batch/many-0604.txt",
+ "object-tests/batch/many-0605.txt",
+ "object-tests/batch/many-0606.txt",
+ "object-tests/batch/many-0607.txt",
+ "object-tests/batch/many-0608.txt",
+ "object-tests/batch/many-0609.txt",
+ "object-tests/batch/many-0610.txt",
+ "object-tests/batch/many-0611.txt",
+ "object-tests/batch/many-0612.txt",
+ "object-tests/batch/many-0613.txt",
+ "object-tests/batch/many-0614.txt",
+ "object-tests/batch/many-0615.txt",
+ "object-tests/batch/many-0616.txt",
+ "object-tests/batch/many-0617.txt",
+ "object-tests/batch/many-0618.txt",
+ "object-tests/batch/many-0619.txt",
+ "object-tests/batch/many-0620.txt",
+ "object-tests/batch/many-0621.txt",
+ "object-tests/batch/many-0622.txt",
+ "object-tests/batch/many-0623.txt",
+ "object-tests/batch/many-0624.txt",
+ "object-tests/batch/many-0625.txt",
+ "object-tests/batch/many-0626.txt",
+ "object-tests/batch/many-0627.txt",
+ "object-tests/batch/many-0628.txt",
+ "object-tests/batch/many-0629.txt",
+ "object-tests/batch/many-0630.txt",
+ "object-tests/batch/many-0631.txt",
+ "object-tests/batch/many-0632.txt",
+ "object-tests/batch/many-0633.txt",
+ "object-tests/batch/many-0634.txt",
+ "object-tests/batch/many-0635.txt",
+ "object-tests/batch/many-0636.txt",
+ "object-tests/batch/many-0637.txt",
+ "object-tests/batch/many-0638.txt",
+ "object-tests/batch/many-0639.txt",
+ "object-tests/batch/many-0640.txt",
+ "object-tests/batch/many-0641.txt",
+ "object-tests/batch/many-0642.txt",
+ "object-tests/batch/many-0643.txt",
+ "object-tests/batch/many-0644.txt",
+ "object-tests/batch/many-0645.txt",
+ "object-tests/batch/many-0646.txt",
+ "object-tests/batch/many-0647.txt",
+ "object-tests/batch/many-0648.txt",
+ "object-tests/batch/many-0649.txt",
+ "object-tests/batch/many-0650.txt",
+ "object-tests/batch/many-0651.txt",
+ "object-tests/batch/many-0652.txt",
+ "object-tests/batch/many-0653.txt",
+ "object-tests/batch/many-0654.txt",
+ "object-tests/batch/many-0655.txt",
+ "object-tests/batch/many-0656.txt",
+ "object-tests/batch/many-0657.txt",
+ "object-tests/batch/many-0658.txt",
+ "object-tests/batch/many-0659.txt",
+ "object-tests/batch/many-0660.txt",
+ "object-tests/batch/many-0661.txt",
+ "object-tests/batch/many-0662.txt",
+ "object-tests/batch/many-0663.txt",
+ "object-tests/batch/many-0664.txt",
+ "object-tests/batch/many-0665.txt",
+ "object-tests/batch/many-0666.txt",
+ "object-tests/batch/many-0667.txt",
+ "object-tests/batch/many-0668.txt",
+ "object-tests/batch/many-0669.txt",
+ "object-tests/batch/many-0670.txt",
+ "object-tests/batch/many-0671.txt",
+ "object-tests/batch/many-0672.txt",
+ "object-tests/batch/many-0673.txt",
+ "object-tests/batch/many-0674.txt",
+ "object-tests/batch/many-0675.txt",
+ "object-tests/batch/many-0676.txt",
+ "object-tests/batch/many-0677.txt",
+ "object-tests/batch/many-0678.txt",
+ "object-tests/batch/many-0679.txt",
+ "object-tests/batch/many-0680.txt",
+ "object-tests/batch/many-0681.txt",
+ "object-tests/batch/many-0682.txt",
+ "object-tests/batch/many-0683.txt",
+ "object-tests/batch/many-0684.txt",
+ "object-tests/batch/many-0685.txt",
+ "object-tests/batch/many-0686.txt",
+ "object-tests/batch/many-0687.txt",
+ "object-tests/batch/many-0688.txt",
+ "object-tests/batch/many-0689.txt",
+ "object-tests/batch/many-0690.txt",
+ "object-tests/batch/many-0691.txt",
+ "object-tests/batch/many-0692.txt",
+ "object-tests/batch/many-0693.txt",
+ "object-tests/batch/many-0694.txt",
+ "object-tests/batch/many-0695.txt",
+ "object-tests/batch/many-0696.txt",
+ "object-tests/batch/many-0697.txt",
+ "object-tests/batch/many-0698.txt",
+ "object-tests/batch/many-0699.txt",
+ "object-tests/batch/many-0700.txt",
+ "object-tests/batch/many-0701.txt",
+ "object-tests/batch/many-0702.txt",
+ "object-tests/batch/many-0703.txt",
+ "object-tests/batch/many-0704.txt",
+ "object-tests/batch/many-0705.txt",
+ "object-tests/batch/many-0706.txt",
+ "object-tests/batch/many-0707.txt",
+ "object-tests/batch/many-0708.txt",
+ "object-tests/batch/many-0709.txt",
+ "object-tests/batch/many-0710.txt",
+ "object-tests/batch/many-0711.txt",
+ "object-tests/batch/many-0712.txt",
+ "object-tests/batch/many-0713.txt",
+ "object-tests/batch/many-0714.txt",
+ "object-tests/batch/many-0715.txt",
+ "object-tests/batch/many-0716.txt",
+ "object-tests/batch/many-0717.txt",
+ "object-tests/batch/many-0718.txt",
+ "object-tests/batch/many-0719.txt",
+ "object-tests/batch/many-0720.txt",
+ "object-tests/batch/many-0721.txt",
+ "object-tests/batch/many-0722.txt",
+ "object-tests/batch/many-0723.txt",
+ "object-tests/batch/many-0724.txt",
+ "object-tests/batch/many-0725.txt",
+ "object-tests/batch/many-0726.txt",
+ "object-tests/batch/many-0727.txt",
+ "object-tests/batch/many-0728.txt",
+ "object-tests/batch/many-0729.txt",
+ "object-tests/batch/many-0730.txt",
+ "object-tests/batch/many-0731.txt",
+ "object-tests/batch/many-0732.txt",
+ "object-tests/batch/many-0733.txt",
+ "object-tests/batch/many-0734.txt",
+ "object-tests/batch/many-0735.txt",
+ "object-tests/batch/many-0736.txt",
+ "object-tests/batch/many-0737.txt",
+ "object-tests/batch/many-0738.txt",
+ "object-tests/batch/many-0739.txt",
+ "object-tests/batch/many-0740.txt",
+ "object-tests/batch/many-0741.txt",
+ "object-tests/batch/many-0742.txt",
+ "object-tests/batch/many-0743.txt",
+ "object-tests/batch/many-0744.txt",
+ "object-tests/batch/many-0745.txt",
+ "object-tests/batch/many-0746.txt",
+ "object-tests/batch/many-0747.txt",
+ "object-tests/batch/many-0748.txt",
+ "object-tests/batch/many-0749.txt",
+ "object-tests/batch/many-0750.txt",
+ "object-tests/batch/many-0751.txt",
+ "object-tests/batch/many-0752.txt",
+ "object-tests/batch/many-0753.txt",
+ "object-tests/batch/many-0754.txt",
+ "object-tests/batch/many-0755.txt",
+ "object-tests/batch/many-0756.txt",
+ "object-tests/batch/many-0757.txt",
+ "object-tests/batch/many-0758.txt",
+ "object-tests/batch/many-0759.txt",
+ "object-tests/batch/many-0760.txt",
+ "object-tests/batch/many-0761.txt",
+ "object-tests/batch/many-0762.txt",
+ "object-tests/batch/many-0763.txt",
+ "object-tests/batch/many-0764.txt",
+ "object-tests/batch/many-0765.txt",
+ "object-tests/batch/many-0766.txt",
+ "object-tests/batch/many-0767.txt",
+ "object-tests/batch/many-0768.txt",
+ "object-tests/batch/many-0769.txt",
+ "object-tests/batch/many-0770.txt",
+ "object-tests/batch/many-0771.txt",
+ "object-tests/batch/many-0772.txt",
+ "object-tests/batch/many-0773.txt",
+ "object-tests/batch/many-0774.txt",
+ "object-tests/batch/many-0775.txt",
+ "object-tests/batch/many-0776.txt",
+ "object-tests/batch/many-0777.txt",
+ "object-tests/batch/many-0778.txt",
+ "object-tests/batch/many-0779.txt",
+ "object-tests/batch/many-0780.txt",
+ "object-tests/batch/many-0781.txt",
+ "object-tests/batch/many-0782.txt",
+ "object-tests/batch/many-0783.txt",
+ "object-tests/batch/many-0784.txt",
+ "object-tests/batch/many-0785.txt",
+ "object-tests/batch/many-0786.txt",
+ "object-tests/batch/many-0787.txt",
+ "object-tests/batch/many-0788.txt",
+ "object-tests/batch/many-0789.txt",
+ "object-tests/batch/many-0790.txt",
+ "object-tests/batch/many-0791.txt",
+ "object-tests/batch/many-0792.txt",
+ "object-tests/batch/many-0793.txt",
+ "object-tests/batch/many-0794.txt",
+ "object-tests/batch/many-0795.txt",
+ "object-tests/batch/many-0796.txt",
+ "object-tests/batch/many-0797.txt",
+ "object-tests/batch/many-0798.txt",
+ "object-tests/batch/many-0799.txt",
+ "object-tests/batch/many-0800.txt",
+ "object-tests/batch/many-0801.txt",
+ "object-tests/batch/many-0802.txt",
+ "object-tests/batch/many-0803.txt",
+ "object-tests/batch/many-0804.txt",
+ "object-tests/batch/many-0805.txt",
+ "object-tests/batch/many-0806.txt",
+ "object-tests/batch/many-0807.txt",
+ "object-tests/batch/many-0808.txt",
+ "object-tests/batch/many-0809.txt",
+ "object-tests/batch/many-0810.txt",
+ "object-tests/batch/many-0811.txt",
+ "object-tests/batch/many-0812.txt",
+ "object-tests/batch/many-0813.txt",
+ "object-tests/batch/many-0814.txt",
+ "object-tests/batch/many-0815.txt",
+ "object-tests/batch/many-0816.txt",
+ "object-tests/batch/many-0817.txt",
+ "object-tests/batch/many-0818.txt",
+ "object-tests/batch/many-0819.txt",
+ "object-tests/batch/many-0820.txt",
+ "object-tests/batch/many-0821.txt",
+ "object-tests/batch/many-0822.txt",
+ "object-tests/batch/many-0823.txt",
+ "object-tests/batch/many-0824.txt",
+ "object-tests/batch/many-0825.txt",
+ "object-tests/batch/many-0826.txt",
+ "object-tests/batch/many-0827.txt",
+ "object-tests/batch/many-0828.txt",
+ "object-tests/batch/many-0829.txt",
+ "object-tests/batch/many-0830.txt",
+ "object-tests/batch/many-0831.txt",
+ "object-tests/batch/many-0832.txt",
+ "object-tests/batch/many-0833.txt",
+ "object-tests/batch/many-0834.txt",
+ "object-tests/batch/many-0835.txt",
+ "object-tests/batch/many-0836.txt",
+ "object-tests/batch/many-0837.txt",
+ "object-tests/batch/many-0838.txt",
+ "object-tests/batch/many-0839.txt",
+ "object-tests/batch/many-0840.txt",
+ "object-tests/batch/many-0841.txt",
+ "object-tests/batch/many-0842.txt",
+ "object-tests/batch/many-0843.txt",
+ "object-tests/batch/many-0844.txt",
+ "object-tests/batch/many-0845.txt",
+ "object-tests/batch/many-0846.txt",
+ "object-tests/batch/many-0847.txt",
+ "object-tests/batch/many-0848.txt",
+ "object-tests/batch/many-0849.txt",
+ "object-tests/batch/many-0850.txt",
+ "object-tests/batch/many-0851.txt",
+ "object-tests/batch/many-0852.txt",
+ "object-tests/batch/many-0853.txt",
+ "object-tests/batch/many-0854.txt",
+ "object-tests/batch/many-0855.txt",
+ "object-tests/batch/many-0856.txt",
+ "object-tests/batch/many-0857.txt",
+ "object-tests/batch/many-0858.txt",
+ "object-tests/batch/many-0859.txt",
+ "object-tests/batch/many-0860.txt",
+ "object-tests/batch/many-0861.txt",
+ "object-tests/batch/many-0862.txt",
+ "object-tests/batch/many-0863.txt",
+ "object-tests/batch/many-0864.txt",
+ "object-tests/batch/many-0865.txt",
+ "object-tests/batch/many-0866.txt",
+ "object-tests/batch/many-0867.txt",
+ "object-tests/batch/many-0868.txt",
+ "object-tests/batch/many-0869.txt",
+ "object-tests/batch/many-0870.txt",
+ "object-tests/batch/many-0871.txt",
+ "object-tests/batch/many-0872.txt",
+ "object-tests/batch/many-0873.txt",
+ "object-tests/batch/many-0874.txt",
+ "object-tests/batch/many-0875.txt",
+ "object-tests/batch/many-0876.txt",
+ "object-tests/batch/many-0877.txt",
+ "object-tests/batch/many-0878.txt",
+ "object-tests/batch/many-0879.txt",
+ "object-tests/batch/many-0880.txt",
+ "object-tests/batch/many-0881.txt",
+ "object-tests/batch/many-0882.txt",
+ "object-tests/batch/many-0883.txt",
+ "object-tests/batch/many-0884.txt",
+ "object-tests/batch/many-0885.txt",
+ "object-tests/batch/many-0886.txt",
+ "object-tests/batch/many-0887.txt",
+ "object-tests/batch/many-0888.txt",
+ "object-tests/batch/many-0889.txt",
+ "object-tests/batch/many-0890.txt",
+ "object-tests/batch/many-0891.txt",
+ "object-tests/batch/many-0892.txt",
+ "object-tests/batch/many-0893.txt",
+ "object-tests/batch/many-0894.txt",
+ "object-tests/batch/many-0895.txt",
+ "object-tests/batch/many-0896.txt",
+ "object-tests/batch/many-0897.txt",
+ "object-tests/batch/many-0898.txt",
+ "object-tests/batch/many-0899.txt",
+ "object-tests/batch/many-0900.txt",
+ "object-tests/batch/many-0901.txt",
+ "object-tests/batch/many-0902.txt",
+ "object-tests/batch/many-0903.txt",
+ "object-tests/batch/many-0904.txt",
+ "object-tests/batch/many-0905.txt",
+ "object-tests/batch/many-0906.txt",
+ "object-tests/batch/many-0907.txt",
+ "object-tests/batch/many-0908.txt",
+ "object-tests/batch/many-0909.txt",
+ "object-tests/batch/many-0910.txt",
+ "object-tests/batch/many-0911.txt",
+ "object-tests/batch/many-0912.txt",
+ "object-tests/batch/many-0913.txt",
+ "object-tests/batch/many-0914.txt",
+ "object-tests/batch/many-0915.txt",
+ "object-tests/batch/many-0916.txt",
+ "object-tests/batch/many-0917.txt",
+ "object-tests/batch/many-0918.txt",
+ "object-tests/batch/many-0919.txt",
+ "object-tests/batch/many-0920.txt",
+ "object-tests/batch/many-0921.txt",
+ "object-tests/batch/many-0922.txt",
+ "object-tests/batch/many-0923.txt",
+ "object-tests/batch/many-0924.txt",
+ "object-tests/batch/many-0925.txt",
+ "object-tests/batch/many-0926.txt",
+ "object-tests/batch/many-0927.txt",
+ "object-tests/batch/many-0928.txt",
+ "object-tests/batch/many-0929.txt",
+ "object-tests/batch/many-0930.txt",
+ "object-tests/batch/many-0931.txt",
+ "object-tests/batch/many-0932.txt",
+ "object-tests/batch/many-0933.txt",
+ "object-tests/batch/many-0934.txt",
+ "object-tests/batch/many-0935.txt",
+ "object-tests/batch/many-0936.txt",
+ "object-tests/batch/many-0937.txt",
+ "object-tests/batch/many-0938.txt",
+ "object-tests/batch/many-0939.txt",
+ "object-tests/batch/many-0940.txt",
+ "object-tests/batch/many-0941.txt",
+ "object-tests/batch/many-0942.txt",
+ "object-tests/batch/many-0943.txt",
+ "object-tests/batch/many-0944.txt",
+ "object-tests/batch/many-0945.txt",
+ "object-tests/batch/many-0946.txt",
+ "object-tests/batch/many-0947.txt",
+ "object-tests/batch/many-0948.txt",
+ "object-tests/batch/many-0949.txt",
+ "object-tests/batch/many-0950.txt",
+ "object-tests/batch/many-0951.txt",
+ "object-tests/batch/many-0952.txt",
+ "object-tests/batch/many-0953.txt",
+ "object-tests/batch/many-0954.txt",
+ "object-tests/batch/many-0955.txt",
+ "object-tests/batch/many-0956.txt",
+ "object-tests/batch/many-0957.txt",
+ "object-tests/batch/many-0958.txt",
+ "object-tests/batch/many-0959.txt",
+ "object-tests/batch/many-0960.txt",
+ "object-tests/batch/many-0961.txt",
+ "object-tests/batch/many-0962.txt",
+ "object-tests/batch/many-0963.txt",
+ "object-tests/batch/many-0964.txt",
+ "object-tests/batch/many-0965.txt",
+ "object-tests/batch/many-0966.txt",
+ "object-tests/batch/many-0967.txt",
+ "object-tests/batch/many-0968.txt",
+ "object-tests/batch/many-0969.txt",
+ "object-tests/batch/many-0970.txt",
+ "object-tests/batch/many-0971.txt",
+ "object-tests/batch/many-0972.txt",
+ "object-tests/batch/many-0973.txt",
+ "object-tests/batch/many-0974.txt",
+ "object-tests/batch/many-0975.txt",
+ "object-tests/batch/many-0976.txt",
+ "object-tests/batch/many-0977.txt",
+ "object-tests/batch/many-0978.txt",
+ "object-tests/batch/many-0979.txt",
+ "object-tests/batch/many-0980.txt",
+ "object-tests/batch/many-0981.txt",
+ "object-tests/batch/many-0982.txt",
+ "object-tests/batch/many-0983.txt",
+ "object-tests/batch/many-0984.txt",
+ "object-tests/batch/many-0985.txt",
+ "object-tests/batch/many-0986.txt",
+ "object-tests/batch/many-0987.txt",
+ "object-tests/batch/many-0988.txt",
+ "object-tests/batch/many-0989.txt",
+ "object-tests/batch/many-0990.txt",
+ "object-tests/batch/many-0991.txt",
+ "object-tests/batch/many-0992.txt",
+ "object-tests/batch/many-0993.txt",
+ "object-tests/batch/many-0994.txt",
+ "object-tests/batch/many-0995.txt",
+ "object-tests/batch/many-0996.txt",
+ "object-tests/batch/many-0997.txt",
+ "object-tests/batch/many-0998.txt",
+ "object-tests/batch/many-0999.txt",
+ "object-tests/batch/many-1000.txt"
+ ],
+ "op": "delete_many"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -115865,7 +157159,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -115873,23 +157167,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/small.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-132cb4a5de9d\"1\"fixture-2cab82eb728e\"2"
+ "value": "/"
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/09837ae2020c="
+ "value": ""
}
},
{
@@ -115901,22 +157187,122 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "POST"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/body_text",
+ "optional": false,
+ "rule": {
+ "is": "xml",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/delete",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc64nvme",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "[A-Za-z0-9+/]{11}="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "",
+ "optional": false,
+ "rule": {
+ "is": "body_checksum",
+ "header": "x-amz-checksum-crc64nvme",
+ "algorithm": "crc64nvme"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 400,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nMalformedXMLFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -115924,16 +157310,16 @@
"response": {
"status": 200,
"headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "EntityTooSmallFixture error"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
]
@@ -115953,7 +157339,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 200
+ "value": 400
}
},
{
@@ -115961,31 +157347,65 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "EntityTooSmall"
+ "value": "MalformedXML"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "keys"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "MalformedXML"
+ }
+ }
+ ]
},
{
- "id": "operations/s3-express/commit-precondition-failed",
+ "id": "operations/s3-express/delete-slow-down",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit precondition failed",
+ "purpose": "Report a 503 SlowDown answer as an error, after at most 5 retries",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
],
+ "origin": "transient",
"call": {
- "if_match": "\"fixture-db71b2c0257c\"",
- "key": "object-tests/multipart/guarded.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-201c9ed6f636\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/c7be505aec65="
+ "key": "object-tests/remove/present.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -115997,7 +157417,80 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/query/session",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "DELETE"
}
},
{
@@ -116005,11 +157498,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/remove/present.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -116025,18 +157518,19 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -116045,18 +157539,18 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
}
]
@@ -116070,7 +157564,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "DELETE"
}
},
{
@@ -116078,31 +157572,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/guarded.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-201c9ed6f636\""
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-db71b2c0257c\""
+ "value": "/object-tests/remove/present.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c7be505aec65="
+ "value": ""
}
},
{
@@ -116135,20 +157613,25 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "PreconditionFailedFixture error"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
- },
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -116156,7 +157639,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "DELETE"
}
},
{
@@ -116164,31 +157647,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/guarded.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-201c9ed6f636\"1"
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-db71b2c0257c\""
+ "value": "/object-tests/remove/present.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c7be505aec65="
+ "value": ""
}
},
{
@@ -116221,71 +157688,23 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "PreconditionFailedFixture error"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 200
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PreconditionFailed"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/commit-single-small-part",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "commit single small part",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/single.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-db1e44387ca0\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/b39780854a14="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -116295,7 +157714,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "DELETE"
}
},
{
@@ -116303,11 +157722,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/remove/present.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -116323,18 +157742,19 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -116343,21 +157763,22 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
},
{
"alternatives": [
@@ -116368,7 +157789,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "DELETE"
}
},
{
@@ -116376,23 +157797,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/single.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-db1e44387ca0\""
+ "value": "/object-tests/remove/present.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/b39780854a14="
+ "value": ""
}
},
{
@@ -116425,20 +157838,25 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
- },
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -116446,7 +157864,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "DELETE"
}
},
{
@@ -116454,23 +157872,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/single.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-db1e44387ca0\"1"
+ "value": "/object-tests/remove/present.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/b39780854a14="
+ "value": ""
}
},
{
@@ -116503,21 +157913,22 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/multipart/single.binfixtureobject-tests/multipart/single.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
"framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -116526,50 +157937,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-0841fa5d9c5c\""
+ "value": 503
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "SlowDown"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-object-size-mismatch",
+ "id": "operations/s3-express/delete-if-match-current",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report S3's refusal of a completion whose parts do not add up to the object size stated in x-amz-mp-object-size",
+ "purpose": "delete if match current",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/commit-object-size-mismatch.bin",
- "object_size": 4,
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-db1e44387ca0\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/b39780854a14="
+ "if_match": "\"fixture-137dbea0e0a1\"",
+ "key": "object-tests/remove/conditional.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -116654,7 +158055,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "DELETE"
}
},
{
@@ -116662,109 +158063,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/commit-object-size-mismatch.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-db1e44387ca0\""
- }
- },
- {
- "at": "/query/uploadId",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-upload+/b39780854a14="
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-mp-object-size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "4"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "POST"
+ "value": "/object-tests/remove/conditional.txt"
}
},
{
- "at": "/path",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/commit-object-size-mismatch.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-db1e44387ca0\"1"
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/b39780854a14="
+ "value": "\"fixture-137dbea0e0a1\""
}
},
{
@@ -116790,14 +158105,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/headers/x-amz-mp-object-size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "4"
- }
}
],
"allow_headers": [
@@ -116805,18 +158112,17 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 204,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidRequestThe provided x-amz-mp-object-size header value 4 does not match what was computed: 3fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
]
@@ -116828,47 +158134,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 200
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidRequest"
+ "value": "ok"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-object-size",
+ "id": "operations/s3-express/delete-missing",
"profile": "s3-express",
"lane": "core",
- "purpose": "Send the object size the caller expects in x-amz-mp-object-size; a completion whose parts add up to it succeeds",
+ "purpose": "delete missing",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/commit-object-size.bin",
- "object_size": 3,
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-db1e44387ca0\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/b39780854a14="
+ "key": "object-tests/remove/absent.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -116953,7 +158235,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "DELETE"
}
},
{
@@ -116961,23 +158243,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/commit-object-size.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-db1e44387ca0\""
+ "value": "/object-tests/remove/absent.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/b39780854a14="
+ "value": ""
}
},
{
@@ -117003,14 +158277,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/headers/x-amz-mp-object-size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "3"
- }
}
],
"allow_headers": [
@@ -117018,7 +158284,7 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 204,
"headers": {
"date": {
"from": "now"
@@ -117026,96 +158292,9 @@
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/multipart/commit-object-size.binfixtureobject-tests/multipart/commit-object-size.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "POST"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/multipart/commit-object-size.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-db1e44387ca0\"1"
- }
- },
- {
- "at": "/query/uploadId",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-upload+/b39780854a14="
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-mp-object-size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "3"
- }
+ "encoding": "base64",
+ "data": ""
}
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/multipart/commit-object-size.binfixtureobject-tests/multipart/commit-object-size.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT"
- },
- "framing": "chunked"
}
}
]
@@ -117129,47 +158308,22 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-0841fa5d9c5c\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-one-empty-part",
+ "id": "operations/s3-express/delete-precondition-failed",
"profile": "s3-express",
"lane": "core",
- "purpose": "Complete an upload of one empty part, which writes an empty object; a client that refuses a completion of no parts writes an empty object this way",
+ "purpose": "delete precondition failed",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/empty.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-db1e44387ca0\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/b39780854a14="
+ "if_match": "\"fixture-db71b2c0257c\"",
+ "key": "object-tests/remove/conditional.txt",
+ "op": "delete"
},
"exchanges": [
{
@@ -117254,7 +158408,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "DELETE"
}
},
{
@@ -117262,101 +158416,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/empty.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-db1e44387ca0\""
- }
- },
- {
- "at": "/query/uploadId",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-upload+/b39780854a14="
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "POST"
+ "value": "/object-tests/remove/conditional.txt"
}
},
{
- "at": "/path",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/empty.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-db1e44387ca0\"1"
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/b39780854a14="
+ "value": "\"fixture-db71b2c0257c\""
}
},
{
@@ -117389,16 +158465,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 412,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/multipart/empty.binfixtureobject-tests/multipart/empty.bin\"fixture-0841fa5d9c5c\"rzsmsrcRLcM=FULL_OBJECT"
+ "data": "\nPreconditionFailedFixture error"
},
"framing": "chunked"
}
@@ -117412,49 +158488,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-0841fa5d9c5c\""
+ "value": 412
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "PreconditionFailed"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-subset",
+ "id": "operations/s3-express/get-before-commit",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit subset",
+ "purpose": "get before commit",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/replaced.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-09ac5e35935f\"",
- "number": 1
- }
- ],
- "upload_id": "fixture-upload+/3cc68ed16e61="
+ "key": "object-tests/multipart/object.bin",
+ "op": "get"
},
"exchanges": [
{
@@ -117539,7 +158605,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -117547,23 +158613,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/replaced.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-09ac5e35935f\""
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/3cc68ed16e61="
+ "value": ""
}
},
{
@@ -117596,16 +158654,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin\"fixture-eef5a071f9f6\"DZyVHeSVZ7c=FULL_OBJECT"
+ "data": "\nNoSuchKeyFixture error"
},
"framing": "chunked"
}
@@ -117617,7 +158675,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -117625,23 +158683,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/replaced.bin"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-09ac5e35935f\"1"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/3cc68ed16e61="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -117674,16 +158732,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/multipart/replaced.binfixtureobject-tests/multipart/replaced.bin\"fixture-eef5a071f9f6\"DZyVHeSVZ7c=FULL_OBJECT"
+ "data": "\nNoSuchKeyFixture error"
},
"framing": "chunked"
}
@@ -117697,53 +158755,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-eef5a071f9f6\""
+ "value": 404
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "NoSuchKey"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-unstaged-part",
+ "id": "operations/s3-express/get-committed-tail",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit unstaged part",
+ "purpose": "get committed tail",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"key": "object-tests/multipart/object.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-9aff617fcdf8\"",
- "number": 1
- },
- {
- "etag": "\"fixture-db71b2c0257c\"",
- "number": 3
- }
- ],
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "op": "get",
+ "range": {
+ "suffix": 10
+ }
},
"exchanges": [
{
@@ -117828,7 +158875,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -117840,19 +158887,19 @@
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"3\"fixture-db71b2c0257c\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": "bytes=-10"
}
},
{
@@ -117885,30 +158932,24 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 5242876-5242885/5242886",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ec4f3b9bcac2\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidPartOrderFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "Y2RlZnNlY29uZA=="
+ }
}
},
{
"request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "POST"
- }
- },
{
"at": "/path",
"optional": false,
@@ -117918,19 +158959,19 @@
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-db71b2c0257c\"3"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": "HEAD"
}
},
{
@@ -117956,6 +158997,108 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=-10"
+ }
+ }
+ ],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=5242876-5242885"
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ec4f3b9bcac2\""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 5242876-5242885/5242886",
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-ec4f3b9bcac2\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "Y2RlZnNlY29uZA=="
+ }
+ }
+ }
+ ]
}
],
"allow_headers": [
@@ -117963,18 +159106,20 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-length": "10",
+ "content-range": "bytes 5242876-5242885/5242886",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ec4f3b9bcac2\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidPartOrderFixture error"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
]
@@ -117986,50 +159131,66 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "\"fixture-ec4f3b9bcac2\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidPartOrder"
+ "value": 10
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Y2RlZnNlY29uZA=="
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-wrong-etag",
+ "id": "operations/s3-express/get-empty",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit wrong etag",
+ "purpose": "get empty",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-db71b2c0257c\"",
- "number": 1
- },
- {
- "etag": "\"fixture-ec2738a0b15a\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "key": "object-tests/write/empty.bin",
+ "op": "get"
},
"exchanges": [
{
@@ -118114,7 +159275,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -118122,23 +159283,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-db71b2c0257c\"2\"fixture-ec2738a0b15a\""
+ "value": "/object-tests/write/empty.bin"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": ""
}
},
{
@@ -118173,16 +159326,17 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-de1997e62b9b\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "InvalidPartFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
},
{
@@ -118192,7 +159346,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -118200,23 +159354,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/write/empty.bin"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-db71b2c0257c\"1\"fixture-ec2738a0b15a\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -118244,21 +159398,109 @@
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/write/empty.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/query/partNumber",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-de1997e62b9b\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ }
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 416,
"headers": {
+ "content-range": "bytes */0",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-de1997e62b9b\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "InvalidPartFixture error"
+ "data": "\nInvalidRangeEmpty object0"
},
"framing": "chunked"
}
@@ -118272,50 +159514,70 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 200
+ "value": "\"fixture-de1997e62b9b\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidPart"
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit",
+ "id": "operations/s3-express/get-range-of-empty-object",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit",
+ "purpose": "Report a range read of an empty object as 416 InvalidRange: no range of it can be satisfied, not even its first byte",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-9aff617fcdf8\"",
- "number": 1
- },
- {
- "etag": "\"fixture-ec2738a0b15a\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "key": "object-tests/write/empty.bin",
+ "op": "get",
+ "range": {
+ "end": 1,
+ "start": 0
+ }
},
"exchanges": [
{
@@ -118400,7 +159662,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -118408,23 +159670,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ "value": "/object-tests/write/empty.bin"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": ""
}
},
{
@@ -118450,83 +159704,13 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
{
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "POST"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
- }
- },
- {
- "at": "/query/uploadId",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "value": "bytes=0-0"
}
}
],
@@ -118535,16 +159719,17 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 416,
"headers": {
+ "content-range": "bytes */0",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/multipart/object.binfixtureobject-tests/multipart/object.bin\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
+ "data": "\nInvalidRangeFixture error"
},
"framing": "chunked"
}
@@ -118558,53 +159743,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ec4f3b9bcac2\""
+ "value": 416
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "InvalidRange"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-key-question",
+ "id": "operations/s3-express/get-if-match-current",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit, with the key \"question?mark.txt\"",
+ "purpose": "get if match current",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/question?mark.txt",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-9aff617fcdf8\"",
- "number": 1
- },
- {
- "etag": "\"fixture-ec2738a0b15a\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "if_match": "\"fixture-672b31e65569\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -118689,7 +159861,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -118697,23 +159869,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/question?mark.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": "\"fixture-672b31e65569\""
}
},
{
@@ -118748,16 +159920,17 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
},
{
@@ -118767,7 +159940,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -118775,23 +159948,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/question?mark.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": "\"fixture-672b31e65569\""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -118824,18 +160005,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/question?mark.txtfixtureobject-tests/keys/question?mark.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
}
]
@@ -118855,7 +160038,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ec4f3b9bcac2\""
+ "value": "\"fixture-672b31e65569\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -118868,32 +160067,30 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-key-hash",
+ "id": "operations/s3-express/get-if-none-match-other",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit, with the key \"hash#tag.txt\"",
+ "purpose": "get if none match other",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/hash#tag.txt",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-9aff617fcdf8\"",
- "number": 1
- },
- {
- "etag": "\"fixture-ec2738a0b15a\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "if_none_match": "\"fixture-db71b2c0257c\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -118978,7 +160175,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -118986,23 +160183,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/hash#tag.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": "\"fixture-db71b2c0257c\""
}
},
{
@@ -119037,16 +160234,17 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
},
{
@@ -119056,7 +160254,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -119064,23 +160262,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/hash#tag.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": "\"fixture-db71b2c0257c\""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -119113,18 +160319,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/hash#tag.txtfixtureobject-tests/keys/hash#tag.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
}
]
@@ -119144,7 +160352,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ec4f3b9bcac2\""
+ "value": "\"fixture-672b31e65569\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -119157,32 +160381,29 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-key-percent",
+ "id": "operations/s3-express/get-key-with-hash",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit, with the key \"percent%20.txt\"",
+ "purpose": "get key with hash",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/percent%20.txt",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-9aff617fcdf8\"",
- "number": 1
- },
- {
- "etag": "\"fixture-ec2738a0b15a\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "key": "object-tests/names/hash#tag.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -119267,7 +160488,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -119275,23 +160496,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/percent%20.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ "value": "/object-tests/names/hash#tag.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": ""
}
},
{
@@ -119326,16 +160539,17 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-84af5210cfd9\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MQ=="
+ }
}
},
{
@@ -119345,7 +160559,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -119353,23 +160567,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/percent%20.txt"
+ "value": "/object-tests/names/hash#tag.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -119402,18 +160616,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-84af5210cfd9\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/percent%20.txtfixtureobject-tests/keys/percent%20.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MQ=="
+ }
}
}
]
@@ -119433,7 +160649,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ec4f3b9bcac2\""
+ "value": "\"fixture-84af5210cfd9\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -119446,32 +160678,29 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-key-plus",
+ "id": "operations/s3-express/get-key-with-percent",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit, with the key \"plus+plus.txt\"",
+ "purpose": "get key with percent",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/plus+plus.txt",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-9aff617fcdf8\"",
- "number": 1
- },
- {
- "etag": "\"fixture-ec2738a0b15a\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "key": "object-tests/names/percent%20.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -119556,7 +160785,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -119564,23 +160793,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/plus+plus.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ "value": "/object-tests/names/percent%20.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": ""
}
},
{
@@ -119615,16 +160836,17 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-a16607f00956\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MQ=="
+ }
}
},
{
@@ -119634,7 +160856,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -119642,23 +160864,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/plus+plus.txt"
+ "value": "/object-tests/names/percent%20.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -119691,18 +160913,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-a16607f00956\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/plus+plus.txtfixtureobject-tests/keys/plus+plus.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MQ=="
+ }
}
}
]
@@ -119722,7 +160946,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ec4f3b9bcac2\""
+ "value": "\"fixture-a16607f00956\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -119735,32 +160975,29 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-key-space",
+ "id": "operations/s3-express/get-key-with-plus",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit, with the key \"space name.txt\"",
+ "purpose": "get key with plus",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/space name.txt",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-9aff617fcdf8\"",
- "number": 1
- },
- {
- "etag": "\"fixture-ec2738a0b15a\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "key": "object-tests/names/plus+plus.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -119845,7 +161082,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -119853,23 +161090,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/space name.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ "value": "/object-tests/names/plus+plus.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": ""
}
},
{
@@ -119904,16 +161133,17 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-1b1e630ad692\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/space name.txtfixtureobject-tests/keys/space name.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MQ=="
+ }
}
},
{
@@ -119923,7 +161153,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -119931,23 +161161,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/space name.txt"
+ "value": "/object-tests/names/plus+plus.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -119980,18 +161210,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-1b1e630ad692\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/space name.txtfixtureobject-tests/keys/space name.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MQ=="
+ }
}
}
]
@@ -120011,7 +161243,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ec4f3b9bcac2\""
+ "value": "\"fixture-1b1e630ad692\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -120024,32 +161272,29 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-key-non-ascii",
+ "id": "operations/s3-express/get-key-with-space",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit, with the key \"café/雪.txt\"",
+ "purpose": "get key with space",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/café/雪.txt",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-9aff617fcdf8\"",
- "number": 1
- },
- {
- "etag": "\"fixture-ec2738a0b15a\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "key": "object-tests/names/space name.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -120134,7 +161379,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -120142,23 +161387,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/café/雪.txt"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ "value": "/object-tests/names/space name.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": ""
}
},
{
@@ -120193,16 +161430,17 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-d614f09fca44\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MQ=="
+ }
}
},
{
@@ -120212,7 +161450,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -120220,23 +161458,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/café/雪.txt"
+ "value": "/object-tests/names/space name.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -120269,18 +161507,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-d614f09fca44\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/café/雪.txtfixtureobject-tests/keys/café/雪.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MQ=="
+ }
}
}
]
@@ -120300,7 +161540,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ec4f3b9bcac2\""
+ "value": "\"fixture-d614f09fca44\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
}
},
{
@@ -120313,32 +161569,29 @@
""
]
}
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-key-double-slash",
+ "id": "operations/s3-express/get-key-with-question",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit, with the key \"double//slash.txt\"",
+ "purpose": "get key question",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
],
"call": {
- "key": "object-tests/keys/double//slash.txt",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-9aff617fcdf8\"",
- "number": 1
- },
- {
- "etag": "\"fixture-ec2738a0b15a\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "key": "a?b",
+ "op": "get"
},
"exchanges": [
{
@@ -120423,7 +161676,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -120431,23 +161684,27 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/double//slash.txt"
+ "value": "/a?b"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
- "optional": false,
+ "at": "/headers/content-type",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
},
{
@@ -120475,23 +161732,23 @@
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
"status": 200,
"headers": {
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/double//slash.txtfixtureobject-tests/keys/double//slash.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "aGVsbG8="
+ }
}
},
{
@@ -120501,7 +161758,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -120509,23 +161766,35 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/double//slash.txt"
+ "value": "/a?b"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
+ {
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -120553,23 +161822,24 @@
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/double//slash.txtfixtureobject-tests/keys/double//slash.txt\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "aGVsbG8="
+ }
}
}
]
@@ -120585,49 +161855,27 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ec4f3b9bcac2\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "aGVsbG8="
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-key-trailing-slash",
+ "id": "operations/s3-express/get-key-with-non-ascii",
"profile": "s3-express",
"lane": "core",
- "purpose": "commit, with the key \"trailing-slash/\"",
+ "purpose": "get key unicode",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
],
"call": {
- "key": "object-tests/keys/trailing-slash/",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-9aff617fcdf8\"",
- "number": 1
- },
- {
- "etag": "\"fixture-ec2738a0b15a\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "key": "café/雪",
+ "op": "get"
},
"exchanges": [
{
@@ -120712,7 +161960,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -120720,23 +161968,27 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/trailing-slash/"
+ "value": "/café/雪"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
- "optional": false,
+ "at": "/headers/content-type",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
},
{
@@ -120764,23 +162016,23 @@
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
"status": 200,
"headers": {
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/trailing-slash/fixtureobject-tests/keys/trailing-slash/\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "aGVsbG8="
+ }
}
},
{
@@ -120790,7 +162042,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -120798,23 +162050,35 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/trailing-slash/"
+ "value": "/café/雪"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
+ {
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -120842,23 +162106,24 @@
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "https://fixture.invalid/fixture/object-tests/keys/trailing-slash/fixtureobject-tests/keys/trailing-slash/\"fixture-ec4f3b9bcac2\"E0gM19kR9Fk=FULL_OBJECT"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "aGVsbG8="
+ }
}
}
]
@@ -120874,52 +162139,27 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ec4f3b9bcac2\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "aGVsbG8="
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/commit-200-internal-error",
+ "id": "operations/s3-express/get-key-with-separators",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report a completion answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
+ "purpose": "get key separators",
"sources": [
- "https://repost.aws/knowledge-center/s3-resolve-200-internalerror",
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html",
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
],
- "origin": "transient",
"call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"fixture-9aff617fcdf8\"",
- "number": 1
- },
- {
- "etag": "\"fixture-ec2738a0b15a\"",
- "number": 2
- }
- ],
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "key": "a//b/",
+ "op": "get"
},
"exchanges": [
{
@@ -121004,85 +162244,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
- }
- },
- {
- "at": "/query/uploadId",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -121090,23 +162252,27 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/a//b/"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
- "optional": false,
+ "at": "/headers/content-type",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
},
{
@@ -121134,29 +162300,25 @@
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "aGVsbG8="
+ }
}
- }
- ]
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -121164,7 +162326,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -121172,23 +162334,35 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/a//b/"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
+ {
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -121216,25 +162390,64 @@
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "aGVsbG8="
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aGVsbG8="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/get-metadata-empty-value",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "get metadata empty value",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/metadata/empty-value.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -121242,7 +162455,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -121250,23 +162463,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ "value": "/"
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": ""
}
},
{
@@ -121278,19 +162483,18 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
@@ -121301,20 +162505,19 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
- ],
- "optional": true
+ ]
},
{
"alternatives": [
@@ -121325,7 +162528,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -121333,23 +162536,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ "value": "/object-tests/metadata/empty-value.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": ""
}
},
{
@@ -121384,16 +162579,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-e6096f6fd1ec\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-empty": ""
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MQ=="
+ }
}
},
{
@@ -121403,7 +162600,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -121411,23 +162608,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/metadata/empty-value.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -121460,23 +162657,102 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-e6096f6fd1ec\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-empty": ""
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MQ=="
+ }
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-e6096f6fd1ec\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/metadata/empty",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
},
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/get-metadata-hyphen-name",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "get metadata hyphen name",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/metadata/hyphen-name.txt",
+ "op": "get"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -121486,7 +162762,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -121494,23 +162770,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ "value": "/"
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": ""
}
},
{
@@ -121522,19 +162790,18 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
@@ -121545,18 +162812,22 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
- },
+ }
+ ]
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -121564,7 +162835,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -121572,23 +162843,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ "value": "/object-tests/metadata/hyphen-name.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": ""
}
},
{
@@ -121623,23 +162886,20 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-adae183ea4af\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-not-valid": "1"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MQ=="
+ }
}
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -121647,7 +162907,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -121655,23 +162915,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/metadata/hyphen-name.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -121704,20 +162964,104 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-adae183ea4af\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-not-valid": "1"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MQ=="
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-adae183ea4af\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/metadata/not-valid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/get-metadata-punctuation-name",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Report a metadata name that holds any character of an HTTP token.",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/metadata/punctuation-name.txt",
+ "op": "get"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -121725,7 +163069,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -121733,23 +163077,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ "value": "/"
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": ""
}
},
{
@@ -121761,19 +163097,18 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
@@ -121784,20 +163119,19 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
- ],
- "optional": true
+ ]
},
{
"alternatives": [
@@ -121808,7 +163142,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -121816,23 +163150,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"fixture-9aff617fcdf8\"2\"fixture-ec2738a0b15a\""
+ "value": "/object-tests/metadata/punctuation-name.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": ""
}
},
{
@@ -121867,16 +163193,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-adae183ea4af\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-1a!#$%&'*+.^_`|~b": "1"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MQ=="
+ }
}
},
{
@@ -121886,7 +163214,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -121894,23 +163222,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/metadata/punctuation-name.txt"
}
},
{
- "at": "/body_text",
+ "at": "/body_base64",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"fixture-9aff617fcdf8\"1\"fixture-ec2738a0b15a\"2"
+ "is": "equal",
+ "value": ""
}
},
{
- "at": "/query/uploadId",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -121943,22 +163271,24 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-adae183ea4af\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-1a!#$%&'*+.^_`|~b": "1"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MQ=="
+ }
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -121967,39 +163297,76 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/code",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "InternalError"
+ "value": "\"fixture-adae183ea4af\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "1a!#$%&'*+.^_`|~b": "1"
+ }
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/complete-multipart-200-error",
+ "id": "operations/s3-express/get-metadata-non-ascii-value",
"profile": "s3-express",
"lane": "core",
- "purpose": "complete multipart 200 error",
+ "purpose": "A directory bucket returns an RFC 2047 encoded word as it was stored. A client that encodes on a write decodes it to é; one that keeps metadata to ASCII returns it as stored.",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "transient",
"call": {
- "key": "object",
- "op": "s3.complete_multipart",
- "parts": [
- {
- "etag": "\"part\"",
- "number": 1
- }
- ],
- "upload_id": "upload+/="
+ "key": "object-tests/metadata/non-ascii.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -122084,7 +163451,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -122092,23 +163459,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object"
+ "value": "/object-tests/metadata/non-ascii.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "upload+/="
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": "1\"part\""
+ "value": ""
}
},
{
@@ -122143,19 +163502,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
+ "etag": "\"fixture-adae183ea4af\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "x-amz-meta-value": "=?UTF-8?Q?caf=C3=A9?="
},
"body": {
"encoding": "base64",
- "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkludmFsaWRQYXJ0PC9Db2RlPjxNZXNzYWdlPmZpeHR1cmUgZXJyb3I8L01lc3NhZ2U+PC9FcnJvcj4="
- },
- "framing": "chunked"
+ "data": "MQ=="
+ }
}
},
{
@@ -122165,7 +163523,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "POST"
+ "value": "GET"
}
},
{
@@ -122173,23 +163531,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object"
+ "value": "/object-tests/metadata/non-ascii.txt"
}
},
{
- "at": "/query/uploadId",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "upload+/="
+ "value": ""
}
},
{
- "at": "/body_text",
+ "at": "/headers/range",
"optional": false,
"rule": {
- "is": "xml",
- "value": "\"part\"1"
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -122222,21 +163580,21 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
+ "etag": "\"fixture-adae183ea4af\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "x-amz-meta-value": "=?UTF-8?Q?caf=C3=A9?="
},
"body": {
"encoding": "base64",
- "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkludmFsaWRQYXJ0PC9Db2RlPjxNZXNzYWdlPmZpeHR1cmUgZXJyb3I8L01lc3NhZ2U+PC9FcnJvcj4="
- },
- "framing": "chunked"
+ "data": "MQ=="
+ }
}
}
]
@@ -122248,31 +163606,81 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/code",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidPart"
+ "value": "\"fixture-adae183ea4af\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ {
+ "value": "café"
+ },
+ {
+ "value": "=?UTF-8?Q?caf=C3=A9?="
+ }
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/delete-accepted",
+ "id": "operations/s3-express/get-metadata-outside-latin-1",
"profile": "s3-express",
"lane": "core",
- "purpose": "delete accepted",
+ "purpose": "A directory bucket returns a base64 RFC 2047 encoded word as it was stored. A client that encodes on a write decodes it to 雪; one that keeps metadata to ASCII returns it as stored.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/remove/present.txt",
- "op": "delete"
+ "key": "object-tests/metadata/outside-latin-1.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -122357,7 +163765,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -122365,7 +163773,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/remove/present.txt"
+ "value": "/object-tests/metadata/outside-latin-1.txt"
}
},
{
@@ -122406,16 +163814,100 @@
],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-adae183ea4af\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-value": "=?UTF-8?B?6Zuq?="
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
+ }
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/metadata/outside-latin-1.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-adae183ea4af\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-value": "=?UTF-8?B?6Zuq?="
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MQ=="
}
}
}
@@ -122430,21 +163922,79 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-adae183ea4af\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ {
+ "value": "雪"
+ },
+ {
+ "value": "=?UTF-8?B?6Zuq?="
+ }
+ ]
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/delete-accepted-key-question",
+ "id": "operations/s3-express/get-metadata-split-encoded-words",
"profile": "s3-express",
"lane": "core",
- "purpose": "delete accepted, with the key \"question?mark.txt\"",
+ "purpose": "Decode a long metadata value that a directory bucket returns as one encoded word",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/question?mark.txt",
- "op": "delete"
+ "key": "object-tests/metadata/split-encoded-words.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -122464,11 +164014,84 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/"
+ }
+ },
+ {
+ "at": "/query/session",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/metadata/split-encoded-words.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -122484,18 +164107,19 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -122506,22 +164130,20 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml"
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-value": "=?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?="
},
"body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
+ "encoding": "base64",
+ "data": "MQ=="
}
}
- }
- ]
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -122529,7 +164151,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -122537,7 +164159,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/question?mark.txt"
+ "value": "/object-tests/metadata/split-encoded-words.txt"
}
},
{
@@ -122548,6 +164170,14 @@
"value": ""
}
},
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -122578,16 +164208,20 @@
],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-6c30b210f0a8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-value": "=?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?="
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
}
@@ -122602,21 +164236,74 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6c30b210f0a8\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "value": "雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪"
+ }
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/delete-accepted-key-hash",
+ "id": "operations/s3-express/get-metadata-malformed-encoded-word",
"profile": "s3-express",
"lane": "core",
- "purpose": "delete accepted, with the key \"hash#tag.txt\"",
+ "purpose": "Leave a value that only looks like an RFC 2047 encoded word as it is: =ZZ is no hexadecimal byte.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/hash#tag.txt",
- "op": "delete"
+ "key": "object-tests/metadata/malformed-encoded-word.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -122701,7 +164388,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -122709,7 +164396,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/hash#tag.txt"
+ "value": "/object-tests/metadata/malformed-encoded-word.txt"
}
},
{
@@ -122750,49 +164437,22 @@
],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-adae183ea4af\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-value": "=?UTF-8?Q?caf=ZZ?="
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/delete-accepted-key-percent",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "delete accepted, with the key \"percent%20.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/percent%20.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -122808,11 +164468,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/metadata/malformed-encoded-word.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -122820,76 +164480,11 @@
}
},
{
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/keys/percent%20.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -122922,16 +164517,20 @@
],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-adae183ea4af\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-value": "=?UTF-8?Q?caf=ZZ?="
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
}
@@ -122946,21 +164545,74 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-adae183ea4af\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/value/metadata",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": {
+ "value": "=?UTF-8?Q?caf=ZZ?="
+ }
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/delete-accepted-key-plus",
+ "id": "operations/s3-express/get-metadata-replaced",
"profile": "s3-express",
"lane": "core",
- "purpose": "delete accepted, with the key \"plus+plus.txt\"",
+ "purpose": "get metadata replaced",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/plus+plus.txt",
- "op": "delete"
+ "key": "object-tests/metadata/replaced.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -123045,7 +164697,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -123053,7 +164705,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/plus+plus.txt"
+ "value": "/object-tests/metadata/replaced.txt"
}
},
{
@@ -123094,49 +164746,21 @@
],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-8ff37996a1a3\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "Mg=="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/delete-accepted-key-space",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "delete accepted, with the key \"space name.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/space name.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -123152,11 +164776,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/metadata/replaced.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -123164,76 +164788,11 @@
}
},
{
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/keys/space name.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -123266,16 +164825,19 @@
],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-8ff37996a1a3\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "Mg=="
}
}
}
@@ -123290,21 +164852,64 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-8ff37996a1a3\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Mg=="
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/delete-accepted-key-non-ascii",
+ "id": "operations/s3-express/get-metadata",
"profile": "s3-express",
"lane": "core",
- "purpose": "delete accepted, with the key \"café/雪.txt\"",
+ "purpose": "get metadata",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/café/雪.txt",
- "op": "delete"
+ "key": "object-tests/metadata/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -123389,7 +164994,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -123397,7 +165002,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/café/雪.txt"
+ "value": "/object-tests/metadata/object.txt"
}
},
{
@@ -123438,49 +165043,23 @@
],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-ee657e36119d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-name": "value",
+ "x-amz-meta-second": "2"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/delete-accepted-key-double-slash",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "delete accepted, with the key \"double//slash.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/double//slash.txt",
- "op": "delete"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -123496,11 +165075,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/metadata/object.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -123508,76 +165087,11 @@
}
},
{
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/keys/double//slash.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
}
},
{
@@ -123610,16 +165124,21 @@
],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-0/1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-ee657e36119d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-name": "value",
+ "x-amz-meta-second": "2"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MQ=="
}
}
}
@@ -123634,21 +165153,80 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ee657e36119d\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/metadata/name",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "value"
+ }
+ },
+ {
+ "at": "/value/metadata/second",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MQ=="
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/delete-accepted-key-trailing-slash",
+ "id": "operations/s3-express/get-metadata-ignores-unknown-headers",
"profile": "s3-express",
"lane": "core",
- "purpose": "delete accepted, with the key \"trailing-slash/\"",
+ "purpose": "Surface user metadata; unknown headers must not become metadata.",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
],
"call": {
- "key": "object-tests/keys/trailing-slash/",
- "op": "delete"
+ "key": "object",
+ "op": "get"
},
"exchanges": [
{
@@ -123733,7 +165311,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -123741,7 +165319,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/trailing-slash/"
+ "value": "/object"
}
},
{
@@ -123752,6 +165330,18 @@
"value": ""
}
},
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -123777,58 +165367,27 @@
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 200,
"headers": {
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-author": "Ada",
+ "x-amz-request-id": "fixture-request-id",
+ "x-unrelated": "not metadata"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "aGVsbG8="
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/delete-many",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "Delete several objects in one request and report each result",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html"
- ],
- "call": {
- "keys": [
- "object-tests/batch/a.txt",
- "object-tests/batch/b.txt",
- "object-tests/batch/absent.txt"
- ],
- "op": "delete_many"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -123844,17 +165403,37 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -123864,129 +165443,41 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
- "then": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "POST"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/body_text",
- "optional": false,
- "rule": {
- "is": "xml",
- "value": ""
- }
- },
- {
- "at": "/query/delete",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-amz-checksum-crc64nvme",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "[A-Za-z0-9+/]{11}="
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nobject-tests/batch/a.txtobject-tests/batch/b.txtobject-tests/batch/absent.txt"
- },
- "framing": "chunked"
- }
- }
- ]
- }
- ],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "application/xml"
+ "content-range": "bytes 0-4/5",
+ "content-type": "application/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-author": "Ada",
+ "x-amz-request-id": "fixture-request-id",
+ "x-unrelated": "not metadata"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
+ "encoding": "base64",
+ "data": "aGVsbG8="
}
}
}
@@ -124003,40 +165494,37 @@
}
},
{
- "at": "/value/deleted",
+ "at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": [
- "object-tests/batch/a.txt",
- "object-tests/batch/b.txt",
- "object-tests/batch/absent.txt"
- ]
+ "value": "aGVsbG8="
}
},
{
- "at": "/value/errors",
+ "at": "/value/metadata",
"optional": false,
"rule": {
"is": "equal",
- "value": []
+ "value": {
+ "author": "Ada"
+ }
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/delete-slow-down",
+ "id": "operations/s3-express/get-missing",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report a 503 SlowDown answer as an error, after at most 5 retries",
+ "purpose": "get missing. A client reports it as not_found: the object is absent",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "transient",
"call": {
- "key": "object-tests/remove/present.txt",
- "op": "delete"
+ "key": "object-tests/read/absent.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -124121,81 +165609,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/remove/present.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -124203,7 +165617,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/remove/present.txt"
+ "value": "/object-tests/read/absent.txt"
}
},
{
@@ -124244,7 +165658,7 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
@@ -124253,16 +165667,11 @@
},
"body": {
"encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
+ "data": "\nNoSuchKeyFixture error"
},
"framing": "chunked"
}
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -124270,7 +165679,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -124278,7 +165687,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/remove/present.txt"
+ "value": "/object-tests/read/absent.txt"
}
},
{
@@ -124289,6 +165698,14 @@
"value": ""
}
},
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -124319,7 +165736,7 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
@@ -124328,14 +165745,64 @@
},
"body": {
"encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
+ "data": "\nNoSuchKeyFixture error"
},
"framing": "chunked"
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
},
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "NoSuchKey"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "not_found"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/get-not-modified",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "get not modified",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "if_none_match": "\"fixture-672b31e65569\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -124345,7 +165812,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -124353,11 +165820,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/remove/present.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -124373,19 +165840,18 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
@@ -124394,22 +165860,21 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
- ],
- "optional": true
+ ]
},
{
"alternatives": [
@@ -124420,7 +165885,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -124428,7 +165893,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/remove/present.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -124439,6 +165904,14 @@
"value": ""
}
},
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-672b31e65569\""
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -124469,25 +165942,19 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 304,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-672b31e65569\""
},
"body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -124495,7 +165962,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -124503,7 +165970,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/remove/present.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -124514,6 +165981,22 @@
"value": ""
}
},
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-672b31e65569\""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -124544,22 +166027,20 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 304,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-672b31e65569\""
},
"body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": ""
+ }
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -124576,32 +166057,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 503
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "SlowDown"
+ "value": 304
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/delete-if-match-current",
+ "id": "operations/s3-express/get-precondition-failed",
"profile": "s3-express",
"lane": "core",
- "purpose": "delete if match current",
+ "purpose": "get precondition failed",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "if_match": "\"fixture-137dbea0e0a1\"",
- "key": "object-tests/remove/conditional.txt",
- "op": "delete"
+ "if_match": "\"fixture-db71b2c0257c\"",
+ "key": "object-tests/read/object.txt",
+ "op": "get"
},
"exchanges": [
{
@@ -124686,7 +166159,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -124694,7 +166167,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/remove/conditional.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -124710,7 +166183,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-137dbea0e0a1\""
+ "value": "\"fixture-db71b2c0257c\""
}
},
{
@@ -124743,17 +166216,104 @@
],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 412,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-db71b2c0257c\""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
}
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -124765,23 +166325,43 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PreconditionFailed"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/delete-missing",
+ "id": "operations/s3-express/get-range-inverted",
"profile": "s3-express",
"lane": "core",
- "purpose": "delete missing",
+ "purpose": "get range inverted",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/remove/absent.txt",
- "op": "delete"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 2,
+ "start": 6
+ }
},
"exchanges": [
{
@@ -124866,7 +166446,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -124874,7 +166454,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/remove/absent.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -124885,6 +166465,14 @@
"value": ""
}
},
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=6-1"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -124915,16 +166503,18 @@
],
"allow_query": [],
"response": {
- "status": 204,
+ "status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
+ "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -124939,22 +166529,94 @@
"is": "equal",
"value": "ok"
}
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-672b31e65569\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "range"
+ }
+ }
+ ],
+ "decline_permitted": true
},
{
- "id": "operations/s3-express/delete-precondition-failed",
+ "id": "operations/s3-express/get-range-empty",
"profile": "s3-express",
"lane": "core",
- "purpose": "delete precondition failed",
+ "purpose": "Read a range of no bytes, whose start equals its end. HTTP has no form for it: bytes=5-4 is inverted, and the service ignores it and sends the whole object. A client may refuse it instead",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "if_match": "\"fixture-db71b2c0257c\"",
- "key": "object-tests/remove/conditional.txt",
- "op": "delete"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 5,
+ "start": 5
+ }
},
"exchanges": [
{
@@ -125039,7 +166701,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "DELETE"
+ "value": "GET"
}
},
{
@@ -125047,7 +166709,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/remove/conditional.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -125059,11 +166721,11 @@
}
},
{
- "at": "/headers/if-match",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-db71b2c0257c\""
+ "value": "bytes=5-4"
}
},
{
@@ -125096,18 +166758,19 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
}
]
@@ -125119,39 +166782,95 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": "\"fixture-672b31e65569\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "PreconditionFailed"
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "range"
+ }
+ }
+ ],
+ "decline_permitted": true
},
{
- "id": "operations/s3-express/get-before-commit",
+ "id": "operations/s3-express/get-range-not-satisfiable",
"profile": "s3-express",
"lane": "core",
- "purpose": "get before commit",
+ "purpose": "get range not satisfiable",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/object.bin",
- "op": "get"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "start": 40
+ }
},
"exchanges": [
{
@@ -125244,7 +166963,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -125255,6 +166974,14 @@
"value": ""
}
},
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=40-"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -125285,7 +167012,7 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 416,
"headers": {
"content-type": "application/xml",
"date": {
@@ -125294,7 +167021,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchKeyFixture error"
+ "data": "\nInvalidRangeFixture error"
},
"framing": "chunked"
}
@@ -125314,7 +167041,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -125330,7 +167057,7 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "pattern": "bytes=40-[1-9][0-9]{2,}"
}
},
{
@@ -125363,7 +167090,7 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 416,
"headers": {
"content-type": "application/xml",
"date": {
@@ -125372,7 +167099,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchKeyFixture error"
+ "data": "\nInvalidRangeFixture error"
},
"framing": "chunked"
}
@@ -125394,7 +167121,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": 416
}
},
{
@@ -125402,25 +167129,26 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "NoSuchKey"
+ "value": "InvalidRange"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-committed-tail",
+ "id": "operations/s3-express/get-range-past-the-end",
"profile": "s3-express",
"lane": "core",
- "purpose": "get committed tail",
+ "purpose": "Read a range that ends past the object, which the service clips to the object's end. Report the window it served from Content-Range, bytes 28-29/30, so that the caller sees the range was clipped",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/object.bin",
+ "key": "object-tests/read/object.txt",
"op": "get",
"range": {
- "suffix": 10
+ "end": 64,
+ "start": 28
}
},
"exchanges": [
@@ -125514,7 +167242,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -125530,7 +167258,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=-10"
+ "value": "bytes=28-63"
}
},
{
@@ -125565,191 +167293,17 @@
"response": {
"status": 206,
"headers": {
- "content-range": "bytes 5242876-5242885/5242886",
+ "content-range": "bytes 28-29/30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-ec4f3b9bcac2\"",
+ "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "Y2RlZnNlY29uZA=="
- }
- }
- },
- {
- "request": [
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=-10"
- }
- }
- ],
- "then": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=5242876-5242885"
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ec4f3b9bcac2\""
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 5242876-5242885/5242886",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-ec4f3b9bcac2\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": "Y2RlZnNlY29uZA=="
- }
- }
- }
- ]
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-length": "10",
- "content-range": "bytes 5242876-5242885/5242886",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-ec4f3b9bcac2\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "empty"
+ "data": "Y3Q="
}
}
}
@@ -125770,7 +167324,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ec4f3b9bcac2\""
+ "value": "\"fixture-672b31e65569\""
}
},
{
@@ -125778,7 +167332,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 10
+ "value": 2
}
},
{
@@ -125805,23 +167359,35 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "Y2RlZnNlY29uZA=="
+ "value": "Y3Q="
+ }
+ },
+ {
+ "at": "/value/content_range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes 28-29/30"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-empty",
+ "id": "operations/s3-express/get-range-single-byte",
"profile": "s3-express",
"lane": "core",
- "purpose": "get empty",
+ "purpose": "get range single byte",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/write/empty.bin",
- "op": "get"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "end": 1,
+ "start": 0
+ }
},
"exchanges": [
{
@@ -125914,78 +167480,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/write/empty.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-de1997e62b9b\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/write/empty.bin"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -126000,8 +167495,8 @@
"at": "/headers/range",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "bytes=0-0"
}
},
{
@@ -126029,111 +167524,25 @@
}
}
],
- "then": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/write/empty.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/query/partNumber",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-de1997e62b9b\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
"allow_headers": [
"content-type"
],
"allow_query": [],
"response": {
- "status": 416,
+ "status": 206,
"headers": {
- "content-range": "bytes */0",
- "content-type": "application/xml",
+ "content-range": "bytes 0-0/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-de1997e62b9b\"",
+ "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidRangeEmpty object0"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MA=="
+ }
}
}
]
@@ -126153,7 +167562,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-de1997e62b9b\""
+ "value": "\"fixture-672b31e65569\""
}
},
{
@@ -126161,7 +167570,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 0
+ "value": 1
}
},
{
@@ -126188,24 +167597,27 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MA=="
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-if-match-current",
+ "id": "operations/s3-express/get-range",
"profile": "s3-express",
"lane": "core",
- "purpose": "get if match current",
+ "purpose": "get range",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "if_match": "\"fixture-672b31e65569\"",
"key": "object-tests/read/object.txt",
- "op": "get"
+ "op": "get",
+ "range": {
+ "end": 6,
+ "start": 2
+ }
},
"exchanges": [
{
@@ -126309,99 +167721,12 @@
"value": ""
}
},
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-672b31e65569\""
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-672b31e65569\""
- }
- },
{
"at": "/headers/range",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "bytes=2-5"
}
},
{
@@ -126436,7 +167761,7 @@
"response": {
"status": 206,
"headers": {
- "content-range": "bytes 0-29/30",
+ "content-range": "bytes 2-5/30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
@@ -126446,7 +167771,7 @@
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "data": "MjM0NQ=="
}
}
}
@@ -126475,7 +167800,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 4
}
},
{
@@ -126502,24 +167827,26 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": "MjM0NQ=="
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-if-none-match-other",
+ "id": "operations/s3-express/get-range-open",
"profile": "s3-express",
"lane": "core",
- "purpose": "get if none match other",
+ "purpose": "get range open",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
],
"call": {
- "if_none_match": "\"fixture-db71b2c0257c\"",
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "key": "object",
+ "op": "get",
+ "range": {
+ "start": 3
+ }
},
"exchanges": [
{
@@ -126612,7 +167939,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/object"
}
},
{
@@ -126624,11 +167951,23 @@
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/headers/range",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-db71b2c0257c\""
+ "value": "bytes=3-"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
},
{
@@ -126656,23 +167995,23 @@
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-range": "bytes 3-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "data": "bG8="
}
}
},
@@ -126691,7 +168030,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/object"
}
},
{
@@ -126703,11 +168042,15 @@
}
},
{
- "at": "/headers/if-none-match",
- "optional": false,
+ "at": "/headers/content-type",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "\"fixture-db71b2c0257c\""
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
},
{
@@ -126715,7 +168058,7 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "pattern": "bytes=3-[1-9][0-9]{2,}"
}
},
{
@@ -126743,24 +168086,23 @@
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
"status": 206,
"headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
+ "content-range": "bytes 3-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "data": "bG8="
}
}
}
@@ -126776,62 +168118,27 @@
"value": "ok"
}
},
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-672b31e65569\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
{
"at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": "bG8="
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-key-with-hash",
+ "id": "operations/s3-express/get-replaced",
"profile": "s3-express",
"lane": "core",
- "purpose": "get key with hash",
+ "purpose": "get replaced",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/names/hash#tag.txt",
+ "key": "object-tests/multipart/replaced.bin",
"op": "get"
},
"exchanges": [
@@ -126925,7 +168232,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/names/hash#tag.txt"
+ "value": "/object-tests/multipart/replaced.bin"
}
},
{
@@ -126972,12 +168279,12 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-84af5210cfd9\"",
+ "etag": "\"fixture-eef5a071f9f6\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MQ=="
+ "data": "Yg=="
}
}
},
@@ -126996,7 +168303,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/names/hash#tag.txt"
+ "value": "/object-tests/multipart/replaced.bin"
}
},
{
@@ -127052,12 +168359,12 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-84af5210cfd9\"",
+ "etag": "\"fixture-eef5a071f9f6\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MQ=="
+ "data": "Yg=="
}
}
}
@@ -127078,7 +168385,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-84af5210cfd9\""
+ "value": "\"fixture-eef5a071f9f6\""
}
},
{
@@ -127113,22 +168420,22 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "Yg=="
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-key-with-percent",
+ "id": "operations/s3-express/get-single-part",
"profile": "s3-express",
"lane": "core",
- "purpose": "get key with percent",
+ "purpose": "get single part",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/names/percent%20.txt",
+ "key": "object-tests/multipart/single.bin",
"op": "get"
},
"exchanges": [
@@ -127222,7 +168529,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/names/percent%20.txt"
+ "value": "/object-tests/multipart/single.bin"
}
},
{
@@ -127269,12 +168576,12 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-a16607f00956\"",
+ "etag": "\"fixture-0841fa5d9c5c\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MQ=="
+ "data": "b25seQ=="
}
}
},
@@ -127293,7 +168600,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/names/percent%20.txt"
+ "value": "/object-tests/multipart/single.bin"
}
},
{
@@ -127344,17 +168651,17 @@
"response": {
"status": 206,
"headers": {
- "content-range": "bytes 0-0/1",
+ "content-range": "bytes 0-3/4",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-a16607f00956\"",
+ "etag": "\"fixture-0841fa5d9c5c\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MQ=="
+ "data": "b25seQ=="
}
}
}
@@ -127375,7 +168682,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-a16607f00956\""
+ "value": "\"fixture-0841fa5d9c5c\""
}
},
{
@@ -127383,7 +168690,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 4
}
},
{
@@ -127410,23 +168717,26 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "b25seQ=="
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-key-with-plus",
+ "id": "operations/s3-express/get-suffix-longer-than-object",
"profile": "s3-express",
"lane": "core",
- "purpose": "get key with plus",
+ "purpose": "get suffix longer than object",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/names/plus+plus.txt",
- "op": "get"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "suffix": 100
+ }
},
"exchanges": [
{
@@ -127519,7 +168829,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/names/plus+plus.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -127530,6 +168840,14 @@
"value": ""
}
},
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=-100"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -127560,37 +168878,30 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-29/30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-1b1e630ad692\"",
+ "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MQ=="
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
},
{
"request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
{
"at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/names/plus+plus.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -127602,11 +168913,11 @@
}
},
{
- "at": "/headers/range",
+ "at": "/method",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "HEAD"
}
},
{
@@ -127632,6 +168943,108 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=-100"
+ }
+ }
+ ],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=0-29"
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-672b31e65569\""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ }
+ }
+ ]
}
],
"allow_headers": [
@@ -127641,17 +169054,17 @@
"response": {
"status": 206,
"headers": {
- "content-range": "bytes 0-0/1",
+ "content-length": "30",
+ "content-range": "bytes 0-29/30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-1b1e630ad692\"",
+ "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
+ "encoding": "empty"
}
}
}
@@ -127672,7 +169085,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-1b1e630ad692\""
+ "value": "\"fixture-672b31e65569\""
}
},
{
@@ -127680,7 +169093,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 30
}
},
{
@@ -127707,23 +169120,26 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-key-with-space",
+ "id": "operations/s3-express/get-suffix",
"profile": "s3-express",
"lane": "core",
- "purpose": "get key with space",
+ "purpose": "get suffix",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/names/space name.txt",
- "op": "get"
+ "key": "object-tests/read/object.txt",
+ "op": "get",
+ "range": {
+ "suffix": 6
+ }
},
"exchanges": [
{
@@ -127816,7 +169232,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/names/space name.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -127827,6 +169243,14 @@
"value": ""
}
},
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=-6"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -127857,37 +169281,30 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
+ "content-range": "bytes 24-29/30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-d614f09fca44\"",
+ "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MQ=="
+ "data": "b2JqZWN0"
}
}
},
{
"request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
{
"at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/names/space name.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -127899,11 +169316,11 @@
}
},
{
- "at": "/headers/range",
+ "at": "/method",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "HEAD"
}
},
{
@@ -127929,6 +169346,108 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=-6"
+ }
+ }
+ ],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=24-29"
+ }
+ },
+ {
+ "at": "/headers/if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-672b31e65569\""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 206,
+ "headers": {
+ "content-range": "bytes 24-29/30",
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": "b2JqZWN0"
+ }
+ }
+ }
+ ]
}
],
"allow_headers": [
@@ -127938,17 +169457,17 @@
"response": {
"status": 206,
"headers": {
- "content-range": "bytes 0-0/1",
+ "content-length": "6",
+ "content-range": "bytes 24-29/30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-d614f09fca44\"",
+ "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
+ "encoding": "empty"
}
}
}
@@ -127969,7 +169488,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-d614f09fca44\""
+ "value": "\"fixture-672b31e65569\""
}
},
{
@@ -127977,7 +169496,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 6
}
},
{
@@ -128004,22 +169523,22 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "b2JqZWN0"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-key-with-question",
+ "id": "operations/s3-express/get-whole",
"profile": "s3-express",
"lane": "core",
- "purpose": "get key question",
+ "purpose": "get whole",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "a?b",
+ "key": "object-tests/read/object.txt",
"op": "get"
},
"exchanges": [
@@ -128113,7 +169632,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/a?b"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -128124,18 +169643,6 @@
"value": ""
}
},
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -128161,22 +169668,23 @@
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
"headers": {
- "content-type": "application/octet-stream",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "aGVsbG8="
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
},
@@ -128195,7 +169703,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/a?b"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -128206,18 +169714,6 @@
"value": ""
}
},
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- },
{
"at": "/headers/range",
"optional": false,
@@ -128251,23 +169747,24 @@
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 206,
"headers": {
- "content-range": "bytes 0-4/5",
- "content-type": "application/octet-stream",
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "aGVsbG8="
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -128283,27 +169780,63 @@
"value": "ok"
}
},
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-672b31e65569\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
"at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-key-with-non-ascii",
+ "id": "operations/s3-express/get-session-expired",
"profile": "s3-express",
"lane": "core",
- "purpose": "get key unicode",
+ "purpose": "Renew a session whose Expiration has passed before using it: ask CreateSession again, and sign the GET with the second session",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
+ "origin": "constructed",
"call": {
- "key": "café/雪",
+ "key": "object-tests/read/object.txt",
"op": "get"
},
"exchanges": [
@@ -128374,7 +169907,7 @@
},
"body_time": {
"text": "SESSION_EXPIRATION",
- "offset_seconds": 300
+ "offset_seconds": -60
}
}
}
@@ -128397,11 +169930,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/café/雪"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -128409,15 +169942,76 @@
}
},
{
- "at": "/headers/content-type",
- "optional": true,
+ "at": "/headers/host",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixture-session-token-2fixture-secret-key-2fixture-access-key-2SESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
},
{
@@ -128433,7 +170027,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
+ "value": "fixture-session-token-2"
}
},
{
@@ -128441,26 +170035,27 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key-2/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
"headers": {
- "content-type": "application/octet-stream",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "aGVsbG8="
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
},
@@ -128479,7 +170074,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/café/雪"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -128490,18 +170085,6 @@
"value": ""
}
},
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- },
{
"at": "/headers/range",
"optional": false,
@@ -128523,7 +170106,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
+ "value": "fixture-session-token-2"
}
},
{
@@ -128531,27 +170114,28 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key-2/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 206,
"headers": {
- "content-range": "bytes 0-4/5",
- "content-type": "application/octet-stream",
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "aGVsbG8="
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -128567,27 +170151,62 @@
"value": "ok"
}
},
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-672b31e65569\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
{
"at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-key-with-separators",
+ "id": "operations/s3-express/get-xml-looking",
"profile": "s3-express",
"lane": "core",
- "purpose": "get key separators",
+ "purpose": "get xml looking",
"sources": [
"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
],
"call": {
- "key": "a//b/",
+ "key": "object",
"op": "get"
},
"exchanges": [
@@ -128681,7 +170300,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/a//b/"
+ "value": "/object"
}
},
{
@@ -128744,7 +170363,7 @@
},
"body": {
"encoding": "base64",
- "data": "aGVsbG8="
+ "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
}
}
},
@@ -128763,7 +170382,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/a//b/"
+ "value": "/object"
}
},
{
@@ -128824,7 +170443,7 @@
"response": {
"status": 206,
"headers": {
- "content-range": "bytes 0-4/5",
+ "content-range": "bytes 0-32/33",
"content-type": "application/octet-stream",
"date": {
"from": "now"
@@ -128835,7 +170454,7 @@
},
"body": {
"encoding": "base64",
- "data": "aGVsbG8="
+ "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
}
}
}
@@ -128856,22 +170475,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-metadata-empty-value",
+ "id": "operations/s3-express/get-noise-tolerance",
"profile": "s3-express",
"lane": "core",
- "purpose": "get metadata empty value",
+ "purpose": "get noise tolerance",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
],
+ "origin": "constructed",
"call": {
- "key": "object-tests/metadata/empty-value.txt",
+ "key": "object",
"op": "get"
},
"exchanges": [
@@ -128965,7 +170585,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/empty-value.txt"
+ "value": "/object"
}
},
{
@@ -128976,6 +170596,18 @@
"value": ""
}
},
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -129001,24 +170633,23 @@
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-e6096f6fd1ec\"",
+ "etag": "\"a-different-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-empty": ""
+ "x-amz-request-id": "another-id",
+ "x-fixture-unknown": "ignored"
},
"body": {
"encoding": "base64",
- "data": "MQ=="
+ "data": "aGVsbG8="
}
}
},
@@ -129037,7 +170668,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/empty-value.txt"
+ "value": "/object"
}
},
{
@@ -129048,6 +170679,18 @@
"value": ""
}
},
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
{
"at": "/headers/range",
"optional": false,
@@ -129081,25 +170724,24 @@
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
"status": 206,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-range": "bytes 0-4/5",
+ "content-type": "application/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-e6096f6fd1ec\"",
+ "etag": "\"a-different-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-empty": ""
+ "x-amz-request-id": "another-id",
+ "x-fixture-unknown": "ignored"
},
"body": {
"encoding": "base64",
- "data": "MQ=="
+ "data": "aGVsbG8="
}
}
}
@@ -129115,70 +170757,29 @@
"value": "ok"
}
},
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-e6096f6fd1ec\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/metadata/empty",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
{
"at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "aGVsbG8="
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-metadata-hyphen-name",
+ "id": "operations/s3-express/get-body-cut-short",
"profile": "s3-express",
"lane": "core",
- "purpose": "get metadata hyphen name",
+ "purpose": "Report a body that ends before its Content-Length as an error, or resume it, but never return the short body",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://www.rfc-editor.org/rfc/rfc9112#section-8",
+ "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_client.cpp"
],
+ "origin": "transient",
"call": {
- "key": "object-tests/metadata/hyphen-name.txt",
+ "key": "object-tests/read/object.txt",
"op": "get"
},
"exchanges": [
@@ -129272,7 +170873,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/hyphen-name.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -129319,14 +170920,14 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-adae183ea4af\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-not-valid": "1"
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MQ=="
- }
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ },
+ "truncate_body_after": 15
}
},
{
@@ -129344,7 +170945,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/hyphen-name.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -129395,100 +170996,23 @@
"response": {
"status": 206,
"headers": {
- "content-range": "bytes 0-0/1",
+ "content-range": "bytes 0-29/30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-adae183ea4af\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-not-valid": "1"
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MQ=="
- }
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ },
+ "truncate_body_after": 15
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
},
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-adae183ea4af\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/metadata/not-valid",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1"
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MQ=="
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/get-metadata-punctuation-name",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "Report a metadata name that holds any character of an HTTP token.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/metadata/punctuation-name.txt",
- "op": "get"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -129506,11 +171030,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/read/object.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -129526,44 +171050,43 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
"allow_headers": [
+ "content-type",
"content-type"
],
"allow_query": [],
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml"
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
- }
- ]
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -129579,7 +171102,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/punctuation-name.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -129590,6 +171113,14 @@
"value": ""
}
},
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -129616,23 +171147,24 @@
}
],
"allow_headers": [
+ "content-type",
"content-type"
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-29/30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-adae183ea4af\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-1a!#$%&'*+.^_`|~b": "1"
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MQ=="
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
},
@@ -129651,7 +171183,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/punctuation-name.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -129665,136 +171197,77 @@
{
"at": "/headers/range",
"optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
"rule": {
"is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "value": "bytes=15-"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "value": "\"fixture-672b31e65569\""
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
"status": 206,
"headers": {
- "content-range": "bytes 0-0/1",
+ "content-range": "bytes 15-29/30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-adae183ea4af\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-1a!#$%&'*+.^_`|~b": "1"
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MQ=="
+ "data": "Y3QtdGVzdHMtb2JqZWN0"
}
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
{
"at": "/outcome",
"optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-adae183ea4af\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
"rule": {
"is": "one_of",
"values": [
- null,
- ""
+ "error",
+ "ok"
]
}
},
{
"at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MQ=="
- }
- },
- {
- "at": "/value/metadata",
- "optional": false,
+ "optional": true,
"rule": {
"is": "equal",
- "value": {
- "1a!#$%&'*+.^_`|~b": "1"
- }
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-metadata-non-ascii-value",
+ "id": "operations/s3-express/get-slow-down",
"profile": "s3-express",
"lane": "core",
- "purpose": "A directory bucket returns an RFC 2047 encoded word as it was stored. A client that encodes on a write decodes it to é; one that keeps metadata to ASCII returns it as stored.",
+ "purpose": "Report a 503 SlowDown answer as an error, after at most 5 retries",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
],
+ "origin": "transient",
"call": {
- "key": "object-tests/metadata/non-ascii.txt",
+ "key": "object-tests/read/object.txt",
"op": "get"
},
"exchanges": [
@@ -129888,7 +171361,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/non-ascii.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -129929,20 +171402,18 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-adae183ea4af\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?Q?caf=C3=A9?="
+ }
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
},
{
@@ -129960,7 +171431,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/non-ascii.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -130009,109 +171480,22 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 503,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-adae183ea4af\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?Q?caf=C3=A9?="
+ }
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-adae183ea4af\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
},
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MQ=="
- }
- },
- {
- "at": "/value/metadata",
- "optional": false,
- "rule": {
- "is": "one_of",
- "values": [
- {
- "value": "café"
- },
- {
- "value": "=?UTF-8?Q?caf=C3=A9?="
- }
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/get-metadata-outside-latin-1",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "A directory bucket returns a base64 RFC 2047 encoded word as it was stored. A client that encodes on a write decodes it to 雪; one that keeps metadata to ASCII returns it as stored.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/metadata/outside-latin-1.txt",
- "op": "get"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -130129,11 +171513,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/read/object.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -130149,18 +171533,19 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -130169,24 +171554,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
- }
- ]
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -130202,7 +171583,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/outside-latin-1.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -130213,6 +171594,14 @@
"value": ""
}
},
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -130243,22 +171632,25 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-adae183ea4af\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?B?6Zuq?="
+ }
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
- },
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -130274,7 +171666,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/outside-latin-1.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -130285,14 +171677,6 @@
"value": ""
}
},
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -130323,111 +171707,20 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 503,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-adae183ea4af\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?B?6Zuq?="
+ }
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-adae183ea4af\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MQ=="
- }
- },
- {
- "at": "/value/metadata",
- "optional": false,
- "rule": {
- "is": "one_of",
- "values": [
- {
- "value": "雪"
- },
- {
- "value": "=?UTF-8?B?6Zuq?="
+ "encoding": "utf8",
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/get-metadata-split-encoded-words",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "Decode a long metadata value that a directory bucket returns as one encoded word",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/metadata/split-encoded-words.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -130443,17 +171736,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/read/object.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -130463,18 +171764,19 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -130483,21 +171785,22 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
},
{
"alternatives": [
@@ -130516,7 +171819,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/split-encoded-words.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -130557,20 +171860,18 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?="
+ }
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
},
{
@@ -130588,7 +171889,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/split-encoded-words.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -130637,104 +171938,23 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 503,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-6c30b210f0a8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?B?6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq6Zuq?="
+ }
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6c30b210f0a8\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MQ=="
- }
+ ],
+ "optional": true
},
- {
- "at": "/value/metadata",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": {
- "value": "雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪雪"
- }
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/get-metadata-malformed-encoded-word",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "Leave a value that only looks like an RFC 2047 encoded word as it is: =ZZ is no hexadecimal byte.",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/metadata/malformed-encoded-word.txt",
- "op": "get"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -130752,11 +171972,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/read/object.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -130772,18 +171992,19 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -130792,24 +172013,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
- }
- ]
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -130825,7 +172042,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/malformed-encoded-word.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -130836,6 +172053,14 @@
"value": ""
}
},
+ {
+ "at": "/headers/range",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "bytes=0-[1-9][0-9]{2,}"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -130866,20 +172091,93 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-adae183ea4af\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?Q?caf=ZZ?="
+ }
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
+ "encoding": "utf8",
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/read/object.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
}
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 503,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
},
{
@@ -130897,7 +172195,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/malformed-encoded-word.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -130946,24 +172244,22 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 503,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-adae183ea4af\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-value": "=?UTF-8?Q?caf=ZZ?="
+ }
},
"body": {
- "encoding": "base64",
- "data": "MQ=="
- }
+ "encoding": "utf8",
+ "data": "\nSlowDownPlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -130972,75 +172268,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-adae183ea4af\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "error"
}
},
{
- "at": "/value/body_base64",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": 503
}
},
{
- "at": "/value/metadata",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "value": "=?UTF-8?Q?caf=ZZ?="
- }
+ "value": "SlowDown"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-metadata-replaced",
+ "id": "operations/s3-express/get-if-unmodified-since-past",
"profile": "s3-express",
"lane": "core",
- "purpose": "get metadata replaced",
+ "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/metadata/replaced.txt",
+ "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
"op": "get"
},
"exchanges": [
@@ -131134,7 +172394,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/replaced.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -131168,6 +172428,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/if-unmodified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ }
}
],
"allow_headers": [
@@ -131175,19 +172443,18 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 412,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-8ff37996a1a3\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": "Mg=="
- }
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
}
},
{
@@ -131205,7 +172472,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/replaced.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -131247,6 +172514,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/if-unmodified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ }
}
],
"allow_headers": [
@@ -131254,20 +172529,18 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 412,
"headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-8ff37996a1a3\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": "Mg=="
- }
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
}
}
]
@@ -131279,65 +172552,39 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-8ff37996a1a3\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
+ "value": "error"
}
},
{
- "at": "/value/content_type",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": 412
}
},
{
- "at": "/value/body_base64",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "Mg=="
+ "value": "PreconditionFailed"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-metadata",
+ "id": "operations/s3-express/get-if-modified-since-future",
"profile": "s3-express",
"lane": "core",
- "purpose": "get metadata",
+ "purpose": "Read an object when If-Modified-Since names a future date",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/metadata/object.txt",
+ "if_modified_since": "Fri, 01 Jan 2100 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
"op": "get"
},
"exchanges": [
@@ -131431,7 +172678,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/object.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -131465,6 +172712,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/if-modified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Fri, 01 Jan 2100 00:00:00 GMT"
+ }
}
],
"allow_headers": [
@@ -131478,14 +172733,12 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-ee657e36119d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-name": "value",
- "x-amz-meta-second": "2"
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MQ=="
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
},
@@ -131504,7 +172757,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/object.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -131546,6 +172799,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/if-modified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Fri, 01 Jan 2100 00:00:00 GMT"
+ }
}
],
"allow_headers": [
@@ -131555,19 +172816,17 @@
"response": {
"status": 206,
"headers": {
- "content-range": "bytes 0-0/1",
+ "content-range": "bytes 0-29/30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-ee657e36119d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-name": "value",
- "x-amz-meta-second": "2"
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MQ=="
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -131588,7 +172847,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ee657e36119d\""
+ "value": "\"fixture-672b31e65569\""
}
},
{
@@ -131596,7 +172855,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 30
}
},
{
@@ -131618,43 +172877,28 @@
]
}
},
- {
- "at": "/value/metadata/name",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "value"
- }
- },
- {
- "at": "/value/metadata/second",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
{
"at": "/value/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-metadata-ignores-unknown-headers",
+ "id": "operations/s3-express/get-if-modified-since-past",
"profile": "s3-express",
"lane": "core",
- "purpose": "Surface user metadata; unknown headers must not become metadata.",
+ "purpose": "Read an object modified since a past date",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object",
+ "if_modified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
"op": "get"
},
"exchanges": [
@@ -131748,7 +172992,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -131759,18 +173003,6 @@
"value": ""
}
},
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -131794,26 +173026,33 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/if-modified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ }
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
"headers": {
- "content-type": "application/octet-stream",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-author": "Ada",
- "x-amz-request-id": "fixture-request-id",
- "x-unrelated": "not metadata"
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "aGVsbG8="
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
},
@@ -131832,7 +173071,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -131843,18 +173082,6 @@
"value": ""
}
},
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- },
{
"at": "/headers/range",
"optional": false,
@@ -131886,27 +173113,34 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/if-modified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ }
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 206,
"headers": {
- "content-range": "bytes 0-4/5",
- "content-type": "application/octet-stream",
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-author": "Ada",
- "x-amz-request-id": "fixture-request-id",
- "x-unrelated": "not metadata"
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "aGVsbG8="
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -131923,36 +173157,62 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": "\"fixture-672b31e65569\""
}
},
{
- "at": "/value/metadata",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": {
- "author": "Ada"
- }
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-missing",
+ "id": "operations/s3-express/get-if-modified-since-unchanged",
"profile": "s3-express",
"lane": "core",
- "purpose": "get missing",
+ "purpose": "Report an object not changed since the If-Modified-Since date as 304 Not Modified, not as an error of the service or an empty object",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/read/absent.txt",
+ "if_modified_since": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
"op": "get"
},
"exchanges": [
@@ -132046,7 +173306,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/absent.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -132080,6 +173340,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/if-modified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
}
],
"allow_headers": [
@@ -132087,18 +173355,17 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 304,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nNoSuchKeyFixture error"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
},
{
@@ -132116,7 +173383,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/absent.txt"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -132158,6 +173425,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/if-modified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
}
],
"allow_headers": [
@@ -132165,18 +173440,17 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 304,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ad03f2ab332a\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nNoSuchKeyFixture error"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
}
]
@@ -132196,30 +173470,22 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 404
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "NoSuchKey"
+ "value": 304
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-not-modified",
+ "id": "operations/s3-express/get-if-modified-since-invalid",
"profile": "s3-express",
"lane": "core",
- "purpose": "get not modified",
+ "purpose": "Read an object when If-Modified-Since is not an HTTP date, which S3 ignores. A client may refuse the date instead",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "if_none_match": "\"fixture-672b31e65569\"",
+ "if_modified_since": "not a date",
"key": "object-tests/read/object.txt",
"op": "get"
},
@@ -132325,14 +173591,6 @@
"value": ""
}
},
- {
- "at": "/headers/if-none-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-672b31e65569\""
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -132356,6 +173614,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/if-modified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "not a date"
+ }
}
],
"allow_headers": [
@@ -132363,16 +173629,18 @@
],
"allow_query": [],
"response": {
- "status": 304,
+ "status": 200,
"headers": {
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\""
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
},
@@ -132402,14 +173670,6 @@
"value": ""
}
},
- {
- "at": "/headers/if-none-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-672b31e65569\""
- }
- },
{
"at": "/headers/range",
"optional": false,
@@ -132441,6 +173701,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/if-modified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "not a date"
+ }
}
],
"allow_headers": [
@@ -132448,16 +173716,19 @@
],
"allow_query": [],
"response": {
- "status": 304,
+ "status": 206,
"headers": {
+ "content-range": "bytes 0-29/30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\""
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": ""
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
}
@@ -132470,30 +173741,90 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 304
+ "value": "\"fixture-672b31e65569\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "if_modified_since"
+ }
+ }
+ ],
+ "decline_permitted": true
},
{
- "id": "operations/s3-express/get-precondition-failed",
+ "id": "operations/s3-express/get-content-properties",
"profile": "s3-express",
"lane": "core",
- "purpose": "get precondition failed",
+ "purpose": "Return the stored content properties from a GET",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "if_match": "\"fixture-db71b2c0257c\"",
"key": "object-tests/read/object.txt",
"op": "get"
},
@@ -132557,11 +173888,14 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml"
+ "cache-control": "max-age=3600",
+ "content-disposition": "attachment; filename=\"report.txt\"",
+ "content-language": "nl-NL",
+ "content-type": "text/plain; charset=utf-8"
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "fixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
"body_time": {
"text": "SESSION_EXPIRATION",
@@ -132599,14 +173933,6 @@
"value": ""
}
},
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-db71b2c0257c\""
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -132637,18 +173963,22 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "cache-control": "max-age=3600",
+ "content-disposition": "attachment; filename=\"report.txt\"",
+ "content-language": "nl-NL",
+ "content-type": "text/plain; charset=utf-8",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
},
{
@@ -132677,14 +174007,6 @@
"value": ""
}
},
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-db71b2c0257c\""
- }
- },
{
"at": "/headers/range",
"optional": false,
@@ -132723,18 +174045,23 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 206,
"headers": {
- "content-type": "application/xml",
+ "cache-control": "max-age=3600",
+ "content-disposition": "attachment; filename=\"report.txt\"",
+ "content-language": "nl-NL",
+ "content-range": "bytes 0-29/30",
+ "content-type": "text/plain; charset=utf-8",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
}
}
]
@@ -132746,43 +174073,90 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": "\"fixture-672b31e65569\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "PreconditionFailed"
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain; charset=utf-8"
+ }
+ },
+ {
+ "at": "/value/content_language",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "nl-NL"
+ }
+ },
+ {
+ "at": "/value/content_disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename=\"report.txt\""
+ }
+ },
+ {
+ "at": "/value/cache_control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-range-inverted",
+ "id": "operations/s3-express/head-committed",
"profile": "s3-express",
"lane": "core",
- "purpose": "get range inverted",
+ "purpose": "head committed",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 2,
- "start": 6
- }
+ "key": "object-tests/multipart/object.bin",
+ "op": "head"
},
"exchanges": [
{
@@ -132867,7 +174241,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -132875,7 +174249,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
@@ -132886,14 +174260,6 @@
"value": ""
}
},
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=6-1"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -132926,16 +174292,17 @@
"response": {
"status": 200,
"headers": {
+ "content-length": "5242886",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\"",
+ "etag": "\"fixture-ec4f3b9bcac2\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "data": ""
}
}
}
@@ -132956,7 +174323,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-672b31e65569\""
+ "value": "\"fixture-ec4f3b9bcac2\""
}
},
{
@@ -132964,7 +174331,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 5242886
}
},
{
@@ -132985,58 +174352,21 @@
""
]
}
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
}
],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "range"
- }
- }
- ],
- "decline_permitted": true
+ "refusal": null
},
{
- "id": "operations/s3-express/get-range-not-satisfiable",
+ "id": "operations/s3-express/head-metadata",
"profile": "s3-express",
"lane": "core",
- "purpose": "get range not satisfiable",
+ "purpose": "head metadata",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "start": 40
- }
+ "key": "object-tests/metadata/object.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -133121,7 +174451,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -133129,7 +174459,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/object-tests/metadata/object.txt"
}
},
{
@@ -133140,14 +174470,6 @@
"value": ""
}
},
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=40-"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -133178,96 +174500,22 @@
],
"allow_query": [],
"response": {
- "status": 416,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "1",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ee657e36119d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-meta-name": "value",
+ "x-amz-meta-second": "2"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidRangeFixture error"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=40-[1-9][0-9]{2,}"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
+ "encoding": "base64",
+ "data": ""
}
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 416,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nInvalidRangeFixture error"
- },
- "framing": "chunked"
}
}
]
@@ -133279,43 +174527,74 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 416
+ "value": "\"fixture-ee657e36119d\""
}
},
{
- "at": "/code",
+ "at": "/value/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidRange"
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/metadata/name",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "value"
+ }
+ },
+ {
+ "at": "/value/metadata/second",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-range-past-the-end",
+ "id": "operations/s3-express/head-missing",
"profile": "s3-express",
"lane": "core",
- "purpose": "get range past the end",
+ "purpose": "Report a HEAD answered 404 as not_found or missing. Its answer has no body, so it cannot say whether the object or the bucket is absent",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 64,
- "start": 28
- }
+ "key": "object-tests/read/absent.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -133400,7 +174679,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -133408,7 +174687,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/object-tests/read/absent.txt"
}
},
{
@@ -133419,14 +174698,6 @@
"value": ""
}
},
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=28-63"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -133457,19 +174728,16 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 404,
"headers": {
- "content-range": "bytes 28-29/30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "base64",
- "data": "Y3Q="
+ "data": ""
}
}
}
@@ -133482,70 +174750,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-672b31e65569\""
+ "value": "error"
}
},
{
- "at": "/value/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 2
+ "value": 404
}
},
{
- "at": "/value/content_type",
+ "at": "/kind",
"optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
"rule": {
"is": "one_of",
"values": [
- null,
- ""
+ "not_found",
+ "missing"
]
}
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Y3Q="
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-range-single-byte",
+ "id": "operations/s3-express/head",
"profile": "s3-express",
"lane": "core",
- "purpose": "get range single byte",
+ "purpose": "head",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 1,
- "start": 0
- }
+ "op": "head"
},
"exchanges": [
{
@@ -133630,7 +174870,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -133649,14 +174889,6 @@
"value": ""
}
},
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=0-0"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -133687,9 +174919,9 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-0/30",
+ "content-length": "30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
@@ -133699,7 +174931,7 @@
},
"body": {
"encoding": "base64",
- "data": "MA=="
+ "data": ""
}
}
}
@@ -133728,7 +174960,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 30
}
},
{
@@ -133749,33 +174981,21 @@
""
]
}
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MA=="
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-range",
+ "id": "operations/s3-express/head-content-properties",
"profile": "s3-express",
"lane": "core",
- "purpose": "get range",
+ "purpose": "Return the stored content properties from a HEAD",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "end": 6,
- "start": 2
- }
+ "op": "head"
},
"exchanges": [
{
@@ -133837,11 +175057,14 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml"
+ "cache-control": "max-age=3600",
+ "content-disposition": "attachment; filename=\"report.txt\"",
+ "content-language": "nl-NL",
+ "content-type": "text/plain; charset=utf-8"
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "fixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
"body_time": {
"text": "SESSION_EXPIRATION",
@@ -133860,7 +175083,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -133879,14 +175102,6 @@
"value": ""
}
},
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=2-5"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -133917,10 +175132,13 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 2-5/30",
- "content-type": "binary/octet-stream",
+ "cache-control": "max-age=3600",
+ "content-disposition": "attachment; filename=\"report.txt\"",
+ "content-language": "nl-NL",
+ "content-length": "30",
+ "content-type": "text/plain; charset=utf-8",
"date": {
"from": "now"
},
@@ -133929,7 +175147,7 @@
},
"body": {
"encoding": "base64",
- "data": "MjM0NQ=="
+ "data": ""
}
}
}
@@ -133958,15 +175176,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 4
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
+ "value": 30
}
},
{
@@ -133981,30 +175191,52 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/content_type",
"optional": false,
"rule": {
"is": "equal",
- "value": "MjM0NQ=="
+ "value": "text/plain; charset=utf-8"
+ }
+ },
+ {
+ "at": "/value/content_language",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "nl-NL"
+ }
+ },
+ {
+ "at": "/value/content_disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename=\"report.txt\""
+ }
+ },
+ {
+ "at": "/value/cache_control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-range-open",
+ "id": "operations/s3-express/head-if-unmodified-since-past",
"profile": "s3-express",
"lane": "core",
- "purpose": "get range open",
+ "purpose": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object",
- "op": "get",
- "range": {
- "start": 3
- }
+ "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
+ "key": "object-tests/read/object.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -134089,7 +175321,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -134097,7 +175329,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object"
+ "value": "/object-tests/read/object.txt"
}
},
{
@@ -134108,26 +175340,6 @@
"value": ""
}
},
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=3-"
- }
- },
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -134151,116 +175363,29 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- }
- ],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 3-4/5",
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
- },
- "body": {
- "encoding": "base64",
- "data": "bG8="
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
},
{
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=3-[1-9][0-9]{2,}"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/if-unmodified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "value": "Sat, 01 Jan 2000 00:00:00 GMT"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 412,
"headers": {
- "content-range": "bytes 3-4/5",
- "content-type": "application/octet-stream",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ }
},
"body": {
- "encoding": "base64",
- "data": "bG8="
+ "encoding": "empty"
}
}
}
@@ -134273,31 +175398,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/body_base64",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "bG8="
+ "value": 412
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-replaced",
+ "id": "operations/s3-express/head-key-question",
"profile": "s3-express",
"lane": "core",
- "purpose": "get replaced",
+ "purpose": "head, with the key \"question?mark.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/replaced.bin",
- "op": "get"
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -134382,7 +175507,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -134390,7 +175515,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/replaced.bin"
+ "value": "/object-tests/keys/question?mark.txt"
}
},
{
@@ -134433,96 +175558,17 @@
"response": {
"status": 200,
"headers": {
+ "content-length": "30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-eef5a071f9f6\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": "Yg=="
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/multipart/replaced.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 0-0/1",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-eef5a071f9f6\"",
+ "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "Yg=="
+ "data": ""
}
}
}
@@ -134543,7 +175589,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-eef5a071f9f6\""
+ "value": "\"fixture-672b31e65569\""
}
},
{
@@ -134551,7 +175597,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 30
}
},
{
@@ -134572,29 +175618,21 @@
""
]
}
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Yg=="
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-single-part",
+ "id": "operations/s3-express/head-key-hash",
"profile": "s3-express",
"lane": "core",
- "purpose": "get single part",
+ "purpose": "head, with the key \"hash#tag.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/single.bin",
- "op": "get"
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -134679,7 +175717,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -134687,7 +175725,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/single.bin"
+ "value": "/object-tests/keys/hash#tag.txt"
}
},
{
@@ -134730,96 +175768,17 @@
"response": {
"status": 200,
"headers": {
+ "content-length": "30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-0841fa5d9c5c\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": "b25seQ=="
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/multipart/single.bin"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 0-3/4",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-0841fa5d9c5c\"",
+ "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "b25seQ=="
+ "data": ""
}
}
}
@@ -134840,7 +175799,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-0841fa5d9c5c\""
+ "value": "\"fixture-672b31e65569\""
}
},
{
@@ -134848,7 +175807,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 4
+ "value": 30
}
},
{
@@ -134869,32 +175828,21 @@
""
]
}
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "b25seQ=="
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-suffix-longer-than-object",
+ "id": "operations/s3-express/head-key-percent",
"profile": "s3-express",
"lane": "core",
- "purpose": "get suffix longer than object",
+ "purpose": "head, with the key \"percent%20.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "suffix": 100
- }
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -134979,87 +175927,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=-100"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "value": "HEAD"
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- },
- {
- "request": [
{
"at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/object-tests/keys/percent%20.txt"
}
},
{
@@ -135070,14 +175946,6 @@
"value": ""
}
},
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -135101,108 +175969,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=-100"
- }
- }
- ],
- "then": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=0-29"
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-672b31e65569\""
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- }
- ]
}
],
"allow_headers": [
@@ -135210,10 +175976,9 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
"content-length": "30",
- "content-range": "bytes 0-29/30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
@@ -135222,7 +175987,8 @@
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "empty"
+ "encoding": "base64",
+ "data": ""
}
}
}
@@ -135272,32 +176038,21 @@
""
]
}
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-suffix",
+ "id": "operations/s3-express/head-key-plus",
"profile": "s3-express",
"lane": "core",
- "purpose": "get suffix",
+ "purpose": "head, with the key \"plus+plus.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get",
- "range": {
- "suffix": 6
- }
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -135382,7 +176137,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -135390,7 +176145,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/object-tests/keys/plus+plus.txt"
}
},
{
@@ -135401,14 +176156,6 @@
"value": ""
}
},
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=-6"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -135439,9 +176186,9 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 24-29/30",
+ "content-length": "30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
@@ -135451,181 +176198,7 @@
},
"body": {
"encoding": "base64",
- "data": "b2JqZWN0"
- }
- }
- },
- {
- "request": [
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=-6"
- }
- }
- ],
- "then": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "bytes=24-29"
- }
- },
- {
- "at": "/headers/if-match",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-672b31e65569\""
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 24-29/30",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": "b2JqZWN0"
- }
- }
- }
- ]
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-length": "6",
- "content-range": "bytes 24-29/30",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "empty"
+ "data": ""
}
}
}
@@ -135654,7 +176227,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 6
+ "value": 30
}
},
{
@@ -135675,29 +176248,21 @@
""
]
}
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "b2JqZWN0"
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-whole",
+ "id": "operations/s3-express/head-key-space",
"profile": "s3-express",
"lane": "core",
- "purpose": "get whole",
+ "purpose": "head, with the key \"space name.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "key": "object-tests/keys/space name.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -135782,7 +176347,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -135790,7 +176355,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/object-tests/keys/space name.txt"
}
},
{
@@ -135833,6 +176398,7 @@
"response": {
"status": 200,
"headers": {
+ "content-length": "30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
@@ -135842,87 +176408,7 @@
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/read/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 206,
- "headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "data": ""
}
}
}
@@ -135972,30 +176458,21 @@
""
]
}
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-session-expired",
+ "id": "operations/s3-express/head-key-non-ascii",
"profile": "s3-express",
"lane": "core",
- "purpose": "Renew a session whose Expiration has passed before using it: ask CreateSession again, and sign the GET with the second session",
+ "purpose": "head, with the key \"café/雪.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "constructed",
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "head"
},
"exchanges": [
{
@@ -136065,7 +176542,7 @@
},
"body_time": {
"text": "SESSION_EXPIRATION",
- "offset_seconds": -60
+ "offset_seconds": 300
}
}
}
@@ -136080,7 +176557,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -136088,11 +176565,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/keys/café/雪.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -136108,18 +176585,19 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -136130,20 +176608,83 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml"
+ "content-length": "30",
+ "content-type": "binary/octet-stream",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixture-session-token-2fixture-secret-key-2fixture-access-key-2SESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
+ "encoding": "base64",
+ "data": ""
}
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-672b31e65569\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
},
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/head-key-double-slash",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "head, with the key \"double//slash.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "head"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -136161,11 +176702,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -136181,19 +176722,18 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token-2"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key-2/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
@@ -136204,19 +176744,22 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
- },
+ }
+ ]
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -136224,7 +176767,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -136232,7 +176775,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/object-tests/keys/double//slash.txt"
}
},
{
@@ -136243,14 +176786,6 @@
"value": ""
}
},
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -136264,7 +176799,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token-2"
+ "value": "fixture-session-token"
}
},
{
@@ -136272,7 +176807,7 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key-2/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -136281,9 +176816,9 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-29/30",
+ "content-length": "30",
"content-type": "binary/octet-stream",
"date": {
"from": "now"
@@ -136293,7 +176828,7 @@
},
"body": {
"encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "data": ""
}
}
}
@@ -136343,29 +176878,21 @@
""
]
}
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-xml-looking",
+ "id": "operations/s3-express/head-key-trailing-slash",
"profile": "s3-express",
"lane": "core",
- "purpose": "get xml looking",
+ "purpose": "head, with the key \"trailing-slash/\"",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object",
- "op": "get"
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "head"
},
"exchanges": [
{
@@ -136450,7 +176977,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -136458,7 +176985,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object"
+ "value": "/object-tests/keys/trailing-slash/"
}
},
{
@@ -136469,18 +176996,6 @@
"value": ""
}
},
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -136506,113 +177021,24 @@
}
}
],
- "allow_headers": [],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
- },
- "body": {
- "encoding": "base64",
- "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/content-type",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
- }
- },
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
+ "allow_headers": [
+ "content-type"
],
- "allow_headers": [],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-32/33",
- "content-type": "application/octet-stream",
+ "content-length": "30",
+ "content-type": "binary/octet-stream",
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "etag": "\"fixture-672b31e65569\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
- "data": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
+ "data": ""
}
}
}
@@ -136629,28 +177055,55 @@
}
},
{
- "at": "/value/body_base64",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "PEVycm9yPnN0aWxsIG9iamVjdCBieXRlczwvRXJyb3I+"
+ "value": "\"fixture-672b31e65569\""
+ }
+ },
+ {
+ "at": "/value/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 30
+ }
+ },
+ {
+ "at": "/value/content_type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "binary/octet-stream"
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-noise-tolerance",
+ "id": "operations/s3-express/list-bad-marker",
"profile": "s3-express",
"lane": "core",
- "purpose": "get noise tolerance",
+ "purpose": "Report S3's 400 InvalidArgument for a continuation token it did not issue",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "constructed",
"call": {
- "key": "object",
- "op": "get"
+ "continuation_token": "fixture-marker+/ce6f21ae951d=",
+ "op": "list_page",
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -136743,7 +177196,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object"
+ "value": "/"
}
},
{
@@ -136755,15 +177208,27 @@
}
},
{
- "at": "/headers/content-type",
- "optional": true,
+ "at": "/query/list-type",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/ce6f21ae951d="
}
},
{
@@ -136791,24 +177256,23 @@
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"a-different-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "another-id",
- "x-fixture-unknown": "ignored"
+ }
},
"body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
+ "encoding": "utf8",
+ "data": "\nInvalidArgumentFixture error"
+ },
+ "framing": "chunked"
}
},
{
@@ -136826,7 +177290,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object"
+ "value": "/"
}
},
{
@@ -136838,23 +177302,27 @@
}
},
{
- "at": "/headers/content-type",
- "optional": true,
+ "at": "/query/list-type",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
+ "is": "equal",
+ "value": "2"
}
},
{
- "at": "/headers/range",
+ "at": "/query/prefix",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/ce6f21ae951d="
}
},
{
@@ -136880,27 +177348,33 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 400,
"headers": {
- "content-range": "bytes 0-4/5",
- "content-type": "application/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"a-different-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "another-id",
- "x-fixture-unknown": "ignored"
+ }
},
"body": {
- "encoding": "base64",
- "data": "aGVsbG8="
- }
+ "encoding": "utf8",
+ "data": "\nInvalidArgumentThe continuation token provided is incorrectcontinuation-token01516607970001a08269f32e0c1ad876480f0641WZg5FiuD0"
+ },
+ "framing": "chunked"
}
}
]
@@ -136912,33 +177386,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/body_base64",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidArgument"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-body-cut-short",
+ "id": "operations/s3-express/list-delimited",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report a body that ends before its Content-Length as an error, or resume it, but never return the short body",
+ "purpose": "Send the delimiter, and report the keys it groups as common prefixes, not as entries",
"sources": [
- "https://www.rfc-editor.org/rfc/rfc9112#section-8",
- "azure-sdk-for-cpp/sdk/storage/azure-storage-blobs/src/blob_client.cpp"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "transient",
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -137031,7 +177512,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -137042,6 +177523,30 @@
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -137074,18 +177579,16 @@
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- },
- "truncate_body_after": 15
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/31000falseCRC64NVME"fixture-7d1b875717fa"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT/object-tests/board/nested/"
+ }
}
},
{
@@ -137103,7 +177606,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -137115,11 +177618,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
}
},
{
@@ -137145,6 +177664,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
"allow_headers": [
@@ -137152,25 +177679,194 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- },
- "truncate_body_after": 15
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/31000urlfalseCRC64NVME"fixture-7d1b875717fa"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT/object-tests/board/nested/"
+ }
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/z.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-7d1b875717fa\""
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ca40e4206a8d\""
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/prefixes/0",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/nested/"
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
},
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/list-empty",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Report a prefix with no objects as no entries, no prefixes and an empty continuation token",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": "object-tests/nothing/"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -137188,11 +177884,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -137208,43 +177904,44 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
"allow_headers": [
- "content-type",
"content-type"
],
"allow_query": [],
"response": {
"status": 200,
"headers": {
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
- },
+ }
+ ]
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -137260,7 +177957,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -137272,11 +177969,19 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/nothing/"
}
},
{
@@ -137305,24 +178010,21 @@
}
],
"allow_headers": [
- "content-type",
"content-type"
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/nothing/01000false"
}
}
},
@@ -137341,7 +178043,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -137353,43 +178055,74 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "bytes=15-"
+ "value": "2"
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-672b31e65569\""
+ "value": "object-tests/nothing/"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 200,
"headers": {
- "content-range": "bytes 15-29/30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "Y3QtdGVzdHMtb2JqZWN0"
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/nothing/01000urlfalse"
}
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -137397,36 +178130,48 @@
"at": "/outcome",
"optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "error",
- "ok"
- ]
+ "is": "equal",
+ "value": "ok"
}
},
{
- "at": "/value/body_base64",
- "optional": true,
+ "at": "/value/continuation_token",
+ "optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
+ "value": ""
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-slow-down",
+ "id": "operations/s3-express/list-all-empty",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report a 503 SlowDown answer as an error, after at most 5 retries",
+ "purpose": "Report an empty bucket as an empty listing",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html"
],
- "origin": "transient",
"call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "op": "list",
+ "prefix": ""
},
"exchanges": [
{
@@ -137519,7 +178264,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -137530,6 +178275,34 @@
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -137555,23 +178328,23 @@
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PC9MaXN0QnVja2V0UmVzdWx0Pg=="
+ }
}
},
{
@@ -137589,7 +178362,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -137601,85 +178374,39 @@
}
},
{
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
+ "value": "2"
}
},
- "body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
- "optional": false,
+ "at": "/query/prefix",
+ "optional": true,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": ""
}
},
{
- "at": "/path",
- "optional": false,
+ "at": "/headers/content-type",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "/object-tests/read/object.txt"
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
}
},
{
- "at": "/body_base64",
+ "at": "/query/encoding-type",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "url"
}
},
{
@@ -137707,25 +178434,63 @@
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48L0xpc3RCdWNrZXRSZXN1bHQ+"
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": []
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/list-xml-escaped",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Read XML character references in listed names, such as & and <, or ask for encoding-type=url and decode the names",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html"
+ ],
+ "call": {
+ "op": "list",
+ "prefix": ""
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -137741,25 +178506,17 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -137769,19 +178526,18 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
@@ -137790,22 +178546,21 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
- ],
- "optional": true
+ ]
},
{
"alternatives": [
@@ -137824,7 +178579,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -137835,6 +178590,34 @@
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -137860,23 +178643,23 @@
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PENvbnRlbnRzPjxFVGFnPiZxdW90O2ZpeHR1cmUmcXVvdDs8L0VUYWc+PEtleT5hJmFtcDtiPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxLZXk+YyZsdDtkPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjwvTGlzdEJ1Y2tldFJlc3VsdD4="
+ }
}
},
{
@@ -137894,7 +178677,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -137906,11 +178689,39 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "application/xml",
+ "application/octet-stream",
+ "binary/octet-stream"
+ ]
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
},
{
@@ -137938,28 +178749,64 @@
}
}
],
- "allow_headers": [
- "content-type"
- ],
+ "allow_headers": [],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "x-amz-request-id": "fixture-request-id"
},
"body": {
- "encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "encoding": "base64",
+ "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48Q29udGVudHM+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48S2V5PmElMjZiPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxLZXk+YyUzQ2Q8L0tleT48TGFzdE1vZGlmaWVkPjIwMjQtMDEtMDFUMDA6MDA6MDAuMDAwWjwvTGFzdE1vZGlmaWVkPjxTaXplPjU8L1NpemU+PFN0b3JhZ2VDbGFzcz5TVEFOREFSRDwvU3RvcmFnZUNsYXNzPjwvQ29udGVudHM+PC9MaXN0QnVja2V0UmVzdWx0Pg=="
+ }
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
},
+ {
+ "at": "/value/keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ "a&b",
+ "c\nSlowDownPlease reduce your request rate.fixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
- },
+ }
+ ]
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -138047,7 +178897,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -138059,11 +178909,19 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/"
}
},
{
@@ -138096,25 +178954,20 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "data": "\nfixtureobject-tests/names/101000falseCRC64NVME"fixture-36534817118e"object-tests/names/back\\slash.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-10822d0eb6a7"object-tests/names/q?mark.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-bd8e8b1adffd"object-tests/names/a&b.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-a16607f00956"object-tests/names/percent%20.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-1b1e630ad692"object-tests/names/plus+plus.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-daab0593c9af"object-tests/names/100%-name.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-d614f09fca44"object-tests/names/space name.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-e759336a908a"object-tests/names/ctrl\u0001.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-578365eba262"object-tests/names/café.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-84af5210cfd9"object-tests/names/hash#tag.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ }
}
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -138130,7 +178983,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -138141,6 +178994,22 @@
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -138164,6 +179033,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
"allow_headers": [
@@ -138171,20 +179048,645 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "data": "\nfixtureobject-tests/names/101000urlfalseCRC64NVME"fixture-36534817118e"object-tests/names/back%5Cslash.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-10822d0eb6a7"object-tests/names/q%3Fmark.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-bd8e8b1adffd"object-tests/names/a%26b.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-a16607f00956"object-tests/names/percent%2520.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-1b1e630ad692"object-tests/names/plus%2Bplus.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-daab0593c9af"object-tests/names/100%25-name.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-d614f09fca44"object-tests/names/space+name.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-e759336a908a"object-tests/names/ctrl%01.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-578365eba262"object-tests/names/caf%C3%A9.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-84af5210cfd9"object-tests/names/hash%23tag.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/back\\slash.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-36534817118e\""
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/q?mark.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-10822d0eb6a7\""
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/a&b.txt"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-bd8e8b1adffd\""
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/percent%20.txt"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-a16607f00956\""
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/plus+plus.txt"
+ }
+ },
+ {
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/4/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-1b1e630ad692\""
+ }
+ },
+ {
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/100%-name.txt"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/5/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-daab0593c9af\""
+ }
+ },
+ {
+ "at": "/value/entries/5/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/space name.txt"
+ }
+ },
+ {
+ "at": "/value/entries/6/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/6/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-d614f09fca44\""
+ }
+ },
+ {
+ "at": "/value/entries/6/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/ctrl\u0001.txt"
+ }
+ },
+ {
+ "at": "/value/entries/7/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/7/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-e759336a908a\""
+ }
+ },
+ {
+ "at": "/value/entries/7/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/8/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/café.txt"
+ }
+ },
+ {
+ "at": "/value/entries/8/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/8/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-578365eba262\""
+ }
+ },
+ {
+ "at": "/value/entries/8/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/8/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/8/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/9/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/names/hash#tag.txt"
+ }
+ },
+ {
+ "at": "/value/entries/9/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/9/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-84af5210cfd9\""
+ }
+ },
+ {
+ "at": "/value/entries/9/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/9/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/9/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 10
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/list-first-page",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Send page_size as max-keys, and report a truncated page's NextContinuationToken as the continuation token",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "op": "list_page",
+ "page_size": 2,
+ "prefix": "object-tests/board/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -138200,25 +179702,17 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
- {
- "at": "/headers/range",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -138228,19 +179722,18 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
@@ -138249,22 +179742,21 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
- ],
- "optional": true
+ ]
},
{
"alternatives": [
@@ -138283,7 +179775,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -138294,6 +179786,30 @@
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -138324,18 +179840,18 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "data": "\nfixtureobject-tests/board/fixture-marker+/88ab99096baf=22trueCRC64NVME"fixture-7d1b875717fa"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-d9b959b4d7a6"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ }
}
},
{
@@ -138353,7 +179869,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -138365,11 +179881,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
}
},
{
@@ -138395,6 +179927,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
"allow_headers": [
@@ -138402,64 +179942,186 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nSlowDownPlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "data": "\nfixtureobject-tests/board/fixture-marker+/88ab99096baf=22urltrueCRC64NVME"fixture-7d1b875717fa"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-d9b959b4d7a6"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ }
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
{
- "at": "/outcome",
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/z.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-7d1b875717fa\""
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/nested/c.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": 1
}
},
{
- "at": "/status",
+ "at": "/value/entries/1/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 503
+ "value": "\"fixture-d9b959b4d7a6\""
}
},
{
- "at": "/code",
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "SlowDown"
+ "value": "fixture-marker+/88ab99096baf="
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/get-if-unmodified-since-past",
+ "id": "operations/s3-express/list-service-unavailable",
"profile": "s3-express",
"lane": "core",
- "purpose": "Refuse a read with 412 when the object changed after If-Unmodified-Since",
+ "purpose": "Report a 503 ServiceUnavailable answer as an error, after at most 5 retries",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
],
+ "origin": "transient",
"call": {
- "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "get"
+ "op": "list_page",
+ "page_size": 2,
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -138552,7 +180214,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -138563,6 +180225,30 @@
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -138586,14 +180272,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/headers/if-unmodified-since",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
- }
}
],
"allow_headers": [
@@ -138601,7 +180279,7 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -138610,7 +180288,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
},
"framing": "chunked"
}
@@ -138630,7 +180308,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -138642,11 +180320,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
}
},
{
@@ -138674,11 +180368,11 @@
}
},
{
- "at": "/headers/if-unmodified-since",
+ "at": "/query/encoding-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ "value": "url"
}
}
],
@@ -138687,7 +180381,7 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 503,
"headers": {
"content-type": "application/xml",
"date": {
@@ -138696,56 +180390,13 @@
},
"body": {
"encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
},
"framing": "chunked"
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PreconditionFailed"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/get-if-modified-since-future",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "Read an object when If-Modified-Since names a future date",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "if_modified_since": "Fri, 01 Jan 2100 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -138767,7 +180418,7 @@
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -138775,76 +180426,27 @@
}
},
{
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "2"
}
},
{
- "at": "/path",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "object-tests/board/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/max-keys",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "2"
}
},
{
@@ -138870,14 +180472,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/headers/if-modified-since",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Fri, 01 Jan 2100 00:00:00 GMT"
- }
}
],
"allow_headers": [
@@ -138885,19 +180479,18 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
},
{
@@ -138915,7 +180508,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -138927,11 +180520,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
}
},
{
@@ -138959,11 +180568,11 @@
}
},
{
- "at": "/headers/if-modified-since",
+ "at": "/query/encoding-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "Fri, 01 Jan 2100 00:00:00 GMT"
+ "value": "url"
}
}
],
@@ -138972,94 +180581,23 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 503,
"headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-672b31e65569\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
+ ],
+ "optional": true
},
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/get-if-modified-since-past",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "Read an object modified since a past date",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "if_modified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -139081,13 +180619,37 @@
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -139097,18 +180659,19 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -139117,24 +180680,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
- }
- ]
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -139150,7 +180709,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -139161,6 +180720,30 @@
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -139186,11 +180769,11 @@
}
},
{
- "at": "/headers/if-modified-since",
+ "at": "/query/encoding-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
+ "value": "url"
}
}
],
@@ -139199,21 +180782,25 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
- },
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -139229,7 +180816,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -139241,11 +180828,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
}
},
{
@@ -139271,14 +180874,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/headers/if-modified-since",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
- }
}
],
"allow_headers": [
@@ -139286,95 +180881,20 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 503,
"headers": {
- "content-range": "bytes 0-29/30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-672b31e65569\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/get-content-properties",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "Return the stored content properties from a GET",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "get"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -139394,13 +180914,37 @@
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -139409,19 +180953,28 @@
"value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
{
"at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/query/encoding-type",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "equal",
+ "value": "url"
}
}
],
@@ -139430,24 +180983,22 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "cache-control": "max-age=3600",
- "content-disposition": "attachment; filename=\"report.txt\"",
- "content-language": "nl-NL",
- "content-type": "text/plain; charset=utf-8"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "fixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
},
{
"alternatives": [
@@ -139466,7 +181017,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -139477,6 +181028,30 @@
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -139507,22 +181082,18 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "cache-control": "max-age=3600",
- "content-disposition": "attachment; filename=\"report.txt\"",
- "content-language": "nl-NL",
- "content-type": "text/plain; charset=utf-8",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
},
{
@@ -139540,7 +181111,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -139552,11 +181123,27 @@
}
},
{
- "at": "/headers/range",
+ "at": "/query/list-type",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "bytes=0-[1-9][0-9]{2,}"
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
}
},
{
@@ -139582,6 +181169,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
"allow_headers": [
@@ -139589,120 +181184,23 @@
],
"allow_query": [],
"response": {
- "status": 206,
+ "status": 503,
"headers": {
- "cache-control": "max-age=3600",
- "content-disposition": "attachment; filename=\"report.txt\"",
- "content-language": "nl-NL",
- "content-range": "bytes 0-29/30",
- "content-type": "text/plain; charset=utf-8",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
+ "encoding": "utf8",
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-672b31e65569\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OS1vYmplY3QtdGVzdHMtb2JqZWN0"
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "text/plain; charset=utf-8"
- }
- },
- {
- "at": "/value/content_language",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "nl-NL"
- }
- },
- {
- "at": "/value/content_disposition",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "attachment; filename=\"report.txt\""
- }
+ ],
+ "optional": true
},
- {
- "at": "/value/cache_control",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "max-age=3600"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/head-committed",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "head committed",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/object.bin",
- "op": "head"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -139724,13 +181222,37 @@
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -139740,18 +181262,19 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -139760,24 +181283,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
- }
- ]
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -139785,7 +181304,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "GET"
}
},
{
@@ -139793,7 +181312,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/"
}
},
{
@@ -139804,6 +181323,30 @@
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -139827,6 +181370,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
"allow_headers": [
@@ -139834,23 +181385,22 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 503,
"headers": {
- "content-length": "5242886",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ec4f3b9bcac2\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ },
+ "framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -139859,58 +181409,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ec4f3b9bcac2\""
+ "value": "error"
}
},
{
- "at": "/value/size",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": 5242886
+ "value": 503
}
},
{
- "at": "/value/content_type",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "ServiceUnavailable"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/head-metadata",
+ "id": "operations/s3-express/list-max-keys-zero",
"profile": "s3-express",
"lane": "core",
- "purpose": "head metadata",
+ "purpose": "Send page_size 0 as max-keys=0; S3 answers an empty page that is not truncated",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/metadata/object.txt",
- "op": "head"
+ "op": "list_page",
+ "page_size": 0,
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -139995,7 +181527,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "GET"
}
},
{
@@ -140003,7 +181535,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/object.txt"
+ "value": "/"
}
},
{
@@ -140014,6 +181546,30 @@
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "0"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -140046,103 +181602,18 @@
"response": {
"status": 200,
"headers": {
- "content-length": "1",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-ee657e36119d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-meta-name": "value",
- "x-amz-meta-second": "2"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/00false"
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ee657e36119d\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/metadata/name",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "value"
- }
- },
- {
- "at": "/value/metadata/second",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/head-missing",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "head missing",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/read/absent.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -140162,7 +181633,7 @@
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -140170,76 +181641,27 @@
}
},
{
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "2"
}
},
{
- "at": "/path",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/absent.txt"
+ "value": "object-tests/board/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/max-keys",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "0"
}
},
{
@@ -140265,6 +181687,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
"allow_headers": [
@@ -140272,16 +181702,17 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/00urlfalse"
}
}
}
@@ -140294,31 +181725,49 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": 404
+ "value": ""
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/head",
+ "id": "operations/s3-express/list-next-page",
"profile": "s3-express",
"lane": "core",
- "purpose": "head",
+ "purpose": "Send the continuation token as continuation-token, a + in it as %2B, and report an empty token for the last page",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/read/object.txt",
- "op": "head"
+ "continuation_token": "fixture-marker+/88ab99096baf=",
+ "op": "list_page",
+ "page_size": 2,
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -140403,7 +181852,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "GET"
}
},
{
@@ -140411,7 +181860,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -140422,6 +181871,38 @@
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/88ab99096baf="
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -140454,85 +181935,18 @@
"response": {
"status": 200,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/fixture-marker+/88ab99096baf=12falseCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT"
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-672b31e65569\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/head-content-properties",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "Return the stored content properties from a HEAD",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/read/object.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -140552,7 +181966,7 @@
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -140560,79 +181974,35 @@
}
},
{
- "at": "/headers/host",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
+ "value": "2"
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "cache-control": "max-age=3600",
- "content-disposition": "attachment; filename=\"report.txt\"",
- "content-language": "nl-NL",
- "content-type": "text/plain; charset=utf-8"
- },
- "body": {
- "encoding": "utf8",
- "data": "fixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
{
- "at": "/method",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "object-tests/board/"
}
},
{
- "at": "/path",
+ "at": "/query/max-keys",
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "2"
}
},
{
- "at": "/body_base64",
+ "at": "/query/continuation-token",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "fixture-marker+/88ab99096baf="
}
},
{
@@ -140658,6 +182028,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
"allow_headers": [
@@ -140667,20 +182045,15 @@
"response": {
"status": 200,
"headers": {
- "cache-control": "max-age=3600",
- "content-disposition": "attachment; filename=\"report.txt\"",
- "content-language": "nl-NL",
- "content-length": "30",
- "content-type": "text/plain; charset=utf-8",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/Aa76REiOO0gPR6lKkFyUFtl1AAAAAAAAAAGoXKBqAAAAAAQAAAAAAAAAscQ7ZzgAAAAAAAAAQUI4QUFBQUFBQUFBYjJKcVpXTjBMWFJsYzNSekwySnZZWEprTDI1bGMzUmxaQzlqTG5SNGRBRT3cnmYCxwsmD0raHf15FaRAP0L8TRD3Kes0lU2EWDoJdA==12urlfalseCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT"
}
}
}
@@ -140697,23 +182070,31 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-672b31e65569\""
+ "value": "object-tests/board/a.txt"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 8
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ca40e4206a8d\""
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -140724,52 +182105,66 @@
}
},
{
- "at": "/value/content_type",
- "optional": false,
+ "at": "/value/entries/0/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "text/plain; charset=utf-8"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
},
{
- "at": "/value/content_language",
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": "nl-NL"
+ "value": ""
}
},
{
- "at": "/value/content_disposition",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": "attachment; filename=\"report.txt\""
+ "is": "array_length",
+ "value": 1
}
},
{
- "at": "/value/cache_control",
+ "at": "/value/prefixes",
"optional": false,
"rule": {
- "is": "equal",
- "value": "max-age=3600"
+ "is": "array_length",
+ "value": 0
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/head-if-unmodified-since-past",
+ "id": "operations/s3-express/list-order-delimited",
"profile": "s3-express",
"lane": "core",
- "purpose": "Refuse a HEAD with 412 when the object changed after If-Unmodified-Since",
+ "purpose": "Report the entries and the common prefixes in the order a directory bucket sends them, without sorting them",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "if_unmodified_since": "Sat, 01 Jan 2000 00:00:00 GMT",
- "key": "object-tests/read/object.txt",
- "op": "head"
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/order/"
},
"exchanges": [
{
@@ -140854,7 +182249,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "GET"
}
},
{
@@ -140862,7 +182257,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/read/object.txt"
+ "value": "/"
}
},
{
@@ -140873,6 +182268,30 @@
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -140896,14 +182315,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/headers/if-unmodified-since",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "Sat, 01 Jan 2000 00:00:00 GMT"
- }
}
],
"allow_headers": [
@@ -140911,55 +182322,20 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "empty"
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/order/81000falseCRC64NVME"fixture-67e7081fe36a"object-tests/order/a2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-e93bd77ca678"object-tests/order/é2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-b6a492ea4100"object-tests/order/a02024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-3a908dcdb129"object-tests/order/a.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-a19aa03709bc"object-tests/order/A2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-62a88dc05318"object-tests/order/a-b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-58bd4a8a6eb3"object-tests/order/b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT/object-tests/order/a/"
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 412
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/head-key-question",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "head, with the key \"question?mark.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/question?mark.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -140979,7 +182355,7 @@
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -140987,76 +182363,27 @@
}
},
{
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "2"
}
},
{
- "at": "/path",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/question?mark.txt"
+ "value": "object-tests/order/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/delimiter",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "/"
}
},
{
@@ -141082,6 +182409,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
"allow_headers": [
@@ -141091,17 +182426,15 @@
"response": {
"status": 200,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/order/81000urlfalseCRC64NVME"fixture-67e7081fe36a"object-tests/order/a2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-e93bd77ca678"object-tests/order/%C3%A92024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-b6a492ea4100"object-tests/order/a02024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-3a908dcdb129"object-tests/order/a.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-a19aa03709bc"object-tests/order/A2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-62a88dc05318"object-tests/order/a-b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-58bd4a8a6eb3"object-tests/order/b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT/object-tests/order/a/"
}
}
}
@@ -141110,62 +182443,458 @@
],
"expect": [
{
- "at": "/outcome",
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-67e7081fe36a\""
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/é"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-e93bd77ca678\""
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a0"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-b6a492ea4100\""
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-3a908dcdb129\""
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/A"
+ }
+ },
+ {
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/4/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-a19aa03709bc\""
+ }
+ },
+ {
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a-b"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/5/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-62a88dc05318\""
+ }
+ },
+ {
+ "at": "/value/entries/5/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/b"
+ }
+ },
+ {
+ "at": "/value/entries/6/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/6/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "\"fixture-58bd4a8a6eb3\""
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/6/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/prefixes/0",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-672b31e65569\""
+ "value": "object-tests/order/a/"
}
},
{
- "at": "/value/size",
+ "at": "/value/continuation_token",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": ""
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": "binary/octet-stream"
+ "is": "array_length",
+ "value": 7
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/value/prefixes",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "array_length",
+ "value": 1
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/head-key-hash",
+ "id": "operations/s3-express/list-order",
"profile": "s3-express",
"lane": "core",
- "purpose": "head, with the key \"hash#tag.txt\"",
+ "purpose": "Report the entries in the order a directory bucket sends them, which is not sorted, without sorting them again",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/hash#tag.txt",
- "op": "head"
+ "op": "list_page",
+ "prefix": "object-tests/order/"
},
"exchanges": [
{
@@ -141250,7 +182979,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "GET"
}
},
{
@@ -141258,7 +182987,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/hash#tag.txt"
+ "value": "/"
}
},
{
@@ -141269,6 +182998,22 @@
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -141301,85 +183046,18 @@
"response": {
"status": 200,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/order/81000falseCRC64NVME"fixture-67e7081fe36a"object-tests/order/a2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-e93bd77ca678"object-tests/order/é2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-b6a492ea4100"object-tests/order/a02024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-3a908dcdb129"object-tests/order/a.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-a19aa03709bc"object-tests/order/A2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-bdef091a4e21"object-tests/order/a/b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-62a88dc05318"object-tests/order/a-b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-58bd4a8a6eb3"object-tests/order/b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-672b31e65569\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/head-key-percent",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "head, with the key \"percent%20.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/percent%20.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -141399,7 +183077,7 @@
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -141407,76 +183085,19 @@
}
},
{
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/percent%20.txt"
+ "value": "2"
}
},
{
- "at": "/body_base64",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/order/"
}
},
{
@@ -141502,6 +183123,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
"allow_headers": [
@@ -141511,17 +183140,15 @@
"response": {
"status": 200,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/order/81000urlfalseCRC64NVME"fixture-67e7081fe36a"object-tests/order/a2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-e93bd77ca678"object-tests/order/%C3%A92024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-b6a492ea4100"object-tests/order/a02024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-3a908dcdb129"object-tests/order/a.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-a19aa03709bc"object-tests/order/A2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-bdef091a4e21"object-tests/order/a/b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-62a88dc05318"object-tests/order/a-b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-58bd4a8a6eb3"object-tests/order/b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
}
}
}
@@ -141538,31 +183165,31 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-672b31e65569\""
+ "value": "object-tests/order/a"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 1
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "\"fixture-67e7081fe36a\""
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -141571,208 +183198,397 @@
""
]
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/head-key-plus",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "head, with the key \"plus+plus.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/plus+plus.txt",
- "op": "head"
- },
- "exchanges": [
+ },
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/query/session",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
- }
- }
- ]
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
},
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/keys/plus+plus.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- }
- }
- }
- ]
- }
- ],
- "expect": [
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
- "at": "/outcome",
+ "at": "/value/entries/1/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "object-tests/order/é"
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/1/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-672b31e65569\""
+ "value": 1
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/1/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": "\"fixture-e93bd77ca678\""
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "object-tests/order/a0"
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-b6a492ea4100\""
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-3a908dcdb129\""
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/A"
+ }
+ },
+ {
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/4/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-a19aa03709bc\""
+ }
+ },
+ {
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a/b"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/5/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-bdef091a4e21\""
+ }
+ },
+ {
+ "at": "/value/entries/5/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/a-b"
+ }
+ },
+ {
+ "at": "/value/entries/6/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/6/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-62a88dc05318\""
+ }
+ },
+ {
+ "at": "/value/entries/6/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/6/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/order/b"
+ }
+ },
+ {
+ "at": "/value/entries/7/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/7/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-58bd4a8a6eb3\""
+ }
+ },
+ {
+ "at": "/value/entries/7/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -141781,21 +183597,68 @@
""
]
}
+ },
+ {
+ "at": "/value/entries/7/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/7/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/head-key-space",
+ "id": "operations/s3-express/list-other-delimiter",
"profile": "s3-express",
"lane": "core",
- "purpose": "head, with the key \"space name.txt\"",
+ "purpose": "Report the 400 InvalidRequest that a directory bucket answers to a delimiter other than /, or refuse it before sending",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/space name.txt",
- "op": "head"
+ "delimiter": "-",
+ "op": "list_page",
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -141880,7 +183743,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "GET"
}
},
{
@@ -141888,7 +183751,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/space name.txt"
+ "value": "/"
}
},
{
@@ -141899,6 +183762,30 @@
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/delimiter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "-"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -141929,87 +183816,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nInvalidRequestFixture error"
+ },
+ "framing": "chunked"
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-672b31e65569\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/head-key-non-ascii",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "head, with the key \"café/雪.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/café/雪.txt",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -142029,7 +183849,7 @@
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -142037,76 +183857,27 @@
}
},
{
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "2"
}
},
{
- "at": "/path",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/café/雪.txt"
+ "value": "object-tests/board/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/delimiter",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "-"
}
},
{
@@ -142132,6 +183903,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
"allow_headers": [
@@ -142139,20 +183918,18 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-672b31e65569\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- }
+ "encoding": "utf8",
+ "data": "\nInvalidRequestThis bucket only supports '/' as a delimiter01a36c7dc10001a08269f29d0c1a80c2547f97e2NIAczpdqY"
+ },
+ "framing": "chunked"
}
}
]
@@ -142164,58 +183941,80 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-672b31e65569\""
+ "value": 400
}
},
{
- "at": "/value/size",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": "InvalidRequest"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
}
},
{
- "at": "/value/content_type",
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "delimiter"
}
},
{
- "at": "/value/version",
+ "at": "/status",
"optional": true,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidRequest"
}
}
- ],
- "refusal": null
+ ]
},
{
- "id": "operations/s3-express/head-key-double-slash",
+ "id": "operations/s3-express/list-page",
"profile": "s3-express",
"lane": "core",
- "purpose": "head, with the key \"double//slash.txt\"",
+ "purpose": "List a prefix with ListObjectsV2 (list-type=2), and report each entry's key, size and ETag, quotes included",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/keys/double//slash.txt",
- "op": "head"
+ "op": "list_page",
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -142300,7 +184099,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "GET"
}
},
{
@@ -142308,7 +184107,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/double//slash.txt"
+ "value": "/"
}
},
{
@@ -142319,6 +184118,22 @@
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -142351,85 +184166,18 @@
"response": {
"status": 200,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/31000falseCRC64NVME"fixture-7d1b875717fa"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-d9b959b4d7a6"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT"
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-672b31e65569\""
- }
- },
- {
- "at": "/value/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 30
- }
- },
- {
- "at": "/value/content_type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "binary/octet-stream"
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/head-key-trailing-slash",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "head, with the key \"trailing-slash/\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/keys/trailing-slash/",
- "op": "head"
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -142449,7 +184197,7 @@
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -142457,76 +184205,19 @@
}
},
{
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "HEAD"
- }
- },
- {
- "at": "/path",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/trailing-slash/"
+ "value": "2"
}
},
{
- "at": "/body_base64",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/board/"
}
},
{
@@ -142552,6 +184243,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
}
],
"allow_headers": [
@@ -142561,17 +184260,15 @@
"response": {
"status": 200,
"headers": {
- "content-length": "30",
- "content-type": "binary/octet-stream",
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-672b31e65569\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/31000urlfalseCRC64NVME"fixture-7d1b875717fa"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-d9b959b4d7a6"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT"
}
}
}
@@ -142588,31 +184285,156 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-672b31e65569\""
+ "value": "object-tests/board/z.txt"
}
},
{
- "at": "/value/size",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": 30
+ "value": 2
}
},
{
- "at": "/value/content_type",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "binary/octet-stream"
+ "value": "\"fixture-7d1b875717fa\""
}
},
{
- "at": "/value/version",
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/nested/c.txt"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-d9b959b4d7a6\""
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 8
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ca40e4206a8d\""
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -142621,22 +184443,56 @@
""
]
}
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 3
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-bad-marker",
+ "id": "operations/s3-express/list-prefix-without-slash",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report S3's 400 InvalidArgument for a continuation token it did not issue",
+ "purpose": "Report the 400 InvalidRequest that a directory bucket answers to a prefix not ending in /, or refuse it before sending",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "continuation_token": "fixture-marker+/ce6f21ae951d=",
"op": "list_page",
- "prefix": "object-tests/board/"
+ "prefix": "object-tests/boa"
},
"exchanges": [
{
@@ -142753,15 +184609,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/continuation-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-marker+/ce6f21ae951d="
+ "value": "object-tests/boa"
}
},
{
@@ -142803,7 +184651,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidArgumentFixture error"
+ "data": "\nInvalidRequestFixture error"
},
"framing": "chunked"
}
@@ -142847,15 +184695,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/continuation-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-marker+/ce6f21ae951d="
+ "value": "object-tests/boa"
}
},
{
@@ -142905,7 +184745,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInvalidArgumentThe continuation token provided is incorrectcontinuation-token01516607970001a08269f32e0c1ad876480f0641WZg5FiuD0"
+ "data": "\nInvalidRequestThis bucket does not support a prefix that does not end in a delimiter. Specify a prefix path ending with a delimiter and try again.0183be19920001a08269f26d0c1a43b807f6c3286pF5i69Tlzo"
},
"framing": "chunked"
}
@@ -142935,24 +184775,65 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidArgument"
+ "value": "InvalidRequest"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "prefix"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidRequest"
+ }
+ }
+ ]
},
{
- "id": "operations/s3-express/list-delimited",
+ "id": "operations/s3-express/list-separator-keys-delimited",
"profile": "s3-express",
"lane": "core",
- "purpose": "Send the delimiter, and report the keys it groups as common prefixes, not as entries",
+ "purpose": "Group each key at the first delimiter after the prefix, even where the key repeats it or ends with it",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"delimiter": "/",
"op": "list_page",
- "prefix": "object-tests/board/"
+ "prefix": "object-tests/separators/"
},
"exchanges": [
{
@@ -143069,7 +184950,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "object-tests/separators/"
}
},
{
@@ -143120,7 +185001,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/31000falseCRC64NVME"fixture-7d1b875717fa"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT/object-tests/board/nested/"
+ "data": "\nfixtureobject-tests/separators/61000falseCRC64NVME"fixture-42aa4973e21e"object-tests/separators/..leading2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-9282c60ce573"object-tests/separators/dot.2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT/object-tests/separators/space /object-tests/separators/a.b/object-tests/separators/trailing/object-tests/separators/double/"
}
}
},
@@ -143163,7 +185044,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "object-tests/separators/"
}
},
{
@@ -143222,7 +185103,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/31000urlfalseCRC64NVME"fixture-7d1b875717fa"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT/object-tests/board/nested/"
+ "data": "\nfixtureobject-tests/separators/61000urlfalseCRC64NVME"fixture-42aa4973e21e"object-tests/separators/..leading2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-9282c60ce573"object-tests/separators/dot.2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT/object-tests/separators/space+/object-tests/separators/a.b/object-tests/separators/trailing/object-tests/separators/double/"
}
}
}
@@ -143243,7 +185124,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/z.txt"
+ "value": "object-tests/separators/..leading"
}
},
{
@@ -143251,7 +185132,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 2
+ "value": 1
}
},
{
@@ -143259,7 +185140,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-7d1b875717fa\""
+ "value": "\"fixture-42aa4973e21e\""
}
},
{
@@ -143300,7 +185181,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/a.txt"
+ "value": "object-tests/separators/dot."
}
},
{
@@ -143308,7 +185189,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 8
+ "value": 1
}
},
{
@@ -143316,7 +185197,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ca40e4206a8d\""
+ "value": "\"fixture-9282c60ce573\""
}
},
{
@@ -143357,7 +185238,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/nested/"
+ "value": "object-tests/separators/space /"
+ }
+ },
+ {
+ "at": "/value/prefixes/1",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/a.b/"
+ }
+ },
+ {
+ "at": "/value/prefixes/2",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/trailing/"
+ }
+ },
+ {
+ "at": "/value/prefixes/3",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/double/"
}
},
{
@@ -143381,23 +185286,23 @@
"optional": false,
"rule": {
"is": "array_length",
- "value": 1
+ "value": 4
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-empty",
+ "id": "operations/s3-express/list-separator-keys",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report a prefix with no objects as no entries, no prefixes and an empty continuation token",
+ "purpose": "Report keys with leading dots, repeated slashes, a space and a trailing slash exactly as stored",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"op": "list_page",
- "prefix": "object-tests/nothing/"
+ "prefix": "object-tests/separators/"
},
"exchanges": [
{
@@ -143514,7 +185419,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/nothing/"
+ "value": "object-tests/separators/"
}
},
{
@@ -143557,7 +185462,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/nothing/01000false"
+ "data": "\nfixtureobject-tests/separators/61000falseCRC64NVME"fixture-42aa4973e21e"object-tests/separators/..leading2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-42eb96253921"object-tests/separators/space /x2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-9282c60ce573"object-tests/separators/dot.2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-3103883be81f"object-tests/separators/a.b/c2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-9122241c6748"object-tests/separators/trailing/2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-86940355381a"object-tests/separators/double//slash2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
}
}
},
@@ -143600,7 +185505,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/nothing/"
+ "value": "object-tests/separators/"
}
},
{
@@ -143651,7 +185556,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/nothing/01000urlfalse"
+ "data": "\nfixtureobject-tests/separators/61000urlfalseCRC64NVME"fixture-42aa4973e21e"object-tests/separators/..leading2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-42eb96253921"object-tests/separators/space+/x2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-9282c60ce573"object-tests/separators/dot.2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-3103883be81f"object-tests/separators/a.b/c2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-9122241c6748"object-tests/separators/trailing/2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-86940355381a"object-tests/separators/double//slash2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
}
}
}
@@ -143667,6 +185572,348 @@
"value": "ok"
}
},
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/..leading"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-42aa4973e21e\""
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/space /x"
+ }
+ },
+ {
+ "at": "/value/entries/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-42eb96253921\""
+ }
+ },
+ {
+ "at": "/value/entries/1/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/1/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/dot."
+ }
+ },
+ {
+ "at": "/value/entries/2/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/2/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-9282c60ce573\""
+ }
+ },
+ {
+ "at": "/value/entries/2/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/2/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/a.b/c"
+ }
+ },
+ {
+ "at": "/value/entries/3/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/3/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-3103883be81f\""
+ }
+ },
+ {
+ "at": "/value/entries/3/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/3/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/trailing/"
+ }
+ },
+ {
+ "at": "/value/entries/4/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/4/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-9122241c6748\""
+ }
+ },
+ {
+ "at": "/value/entries/4/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/4/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/separators/double//slash"
+ }
+ },
+ {
+ "at": "/value/entries/5/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/5/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-86940355381a\""
+ }
+ },
+ {
+ "at": "/value/entries/5/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/5/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
{
"at": "/value/continuation_token",
"optional": false,
@@ -143680,7 +185927,7 @@
"optional": false,
"rule": {
"is": "array_length",
- "value": 0
+ "value": 6
}
},
{
@@ -143695,16 +185942,17 @@
"refusal": null
},
{
- "id": "operations/s3-express/list-all-empty",
+ "id": "operations/s3-express/list-all-pages",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report an empty bucket as an empty listing",
+ "purpose": "Follow each page's continuation token until a page is not truncated",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"op": "list",
- "prefix": ""
+ "page_size": 1,
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -143712,27 +185960,124 @@
{
"request": [
{
- "at": "/method",
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/query/session",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": ""
}
},
{
- "at": "/path",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "2"
}
},
{
- "at": "/query/session",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
}
},
{
@@ -143744,18 +186089,19 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -143766,22 +186112,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
+ "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=11trueCRC64NVME"fixture-626f61720000"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT"
}
}
- }
- ]
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -143818,22 +186160,26 @@
},
{
"at": "/query/prefix",
- "optional": true,
+ "optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/board/"
}
},
{
- "at": "/headers/content-type",
- "optional": true,
+ "at": "/query/max-keys",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
},
{
@@ -143861,7 +186207,9 @@
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
@@ -143870,16 +186218,18 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PC9MaXN0QnVja2V0UmVzdWx0Pg=="
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=11urltrueCRC64NVME"fixture-626f61720000"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT"
}
}
- },
+ }
+ ]
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -143916,30 +186266,26 @@
},
{
"at": "/query/prefix",
- "optional": true,
+ "optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/board/"
}
},
{
- "at": "/headers/content-type",
- "optional": true,
+ "at": "/query/max-keys",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
+ "is": "equal",
+ "value": "1"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/query/continuation-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "fixture-marker+/a11ba9e5001="
}
},
{
@@ -143967,7 +186313,9 @@
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
@@ -143976,54 +186324,14 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjA8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48L0xpc3RCdWNrZXRSZXN1bHQ+"
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=fixture-marker+/a11ba9e5002=11trueCRC64NVME"fixture-626f61720001"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
}
}
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": []
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/list-xml-escaped",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "Read XML character references in listed names, such as & and <, or ask for encoding-type=url and decode the names",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html"
- ],
- "call": {
- "op": "list",
- "prefix": ""
- },
- "exchanges": [
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -144043,13 +186351,53 @@
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/board/"
+ }
+ },
+ {
+ "at": "/query/max-keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/a11ba9e5001="
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -144059,18 +186407,19 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -144081,15 +186430,15 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
+ "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=fixture-marker+/a11ba9e5002=11urltrueCRC64NVME"fixture-626f61720001"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
}
}
}
@@ -144133,22 +186482,26 @@
},
{
"at": "/query/prefix",
- "optional": true,
+ "optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/board/"
}
},
{
- "at": "/headers/content-type",
- "optional": true,
+ "at": "/query/max-keys",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/a11ba9e5002="
}
},
{
@@ -144176,7 +186529,9 @@
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
@@ -144185,13 +186540,11 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxJc1RydW5jYXRlZD5mYWxzZTwvSXNUcnVuY2F0ZWQ+PENvbnRlbnRzPjxFVGFnPiZxdW90O2ZpeHR1cmUmcXVvdDs8L0VUYWc+PEtleT5hJmFtcDtiPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxLZXk+YyZsdDtkPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjwvTGlzdEJ1Y2tldFJlc3VsdD4="
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11falseCRC64NVME"fixture-626f61720002"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECT"
}
}
},
@@ -144231,22 +186584,26 @@
},
{
"at": "/query/prefix",
- "optional": true,
+ "optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "object-tests/board/"
}
},
{
- "at": "/headers/content-type",
- "optional": true,
+ "at": "/query/max-keys",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- "application/xml",
- "application/octet-stream",
- "binary/octet-stream"
- ]
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/query/continuation-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-marker+/a11ba9e5002="
}
},
{
@@ -144282,7 +186639,9 @@
}
}
],
- "allow_headers": [],
+ "allow_headers": [
+ "content-type"
+ ],
"allow_query": [],
"response": {
"status": 200,
@@ -144291,13 +186650,11 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT",
- "x-amz-request-id": "fixture-request-id"
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPExpc3RCdWNrZXRSZXN1bHQgeG1sbnM9Imh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxLyI+PE5hbWU+Zml4dHVyZTwvTmFtZT48UHJlZml4PjwvUHJlZml4PjxNYXhLZXlzPjEwMDA8L01heEtleXM+PEtleUNvdW50PjI8L0tleUNvdW50PjxFbmNvZGluZ1R5cGU+dXJsPC9FbmNvZGluZ1R5cGU+PElzVHJ1bmNhdGVkPmZhbHNlPC9Jc1RydW5jYXRlZD48Q29udGVudHM+PEVUYWc+JnF1b3Q7Zml4dHVyZSZxdW90OzwvRVRhZz48S2V5PmElMjZiPC9LZXk+PExhc3RNb2RpZmllZD4yMDI0LTAxLTAxVDAwOjAwOjAwLjAwMFo8L0xhc3RNb2RpZmllZD48U2l6ZT41PC9TaXplPjxTdG9yYWdlQ2xhc3M+U1RBTkRBUkQ8L1N0b3JhZ2VDbGFzcz48L0NvbnRlbnRzPjxDb250ZW50cz48RVRhZz4mcXVvdDtmaXh0dXJlJnF1b3Q7PC9FVGFnPjxLZXk+YyUzQ2Q8L0tleT48TGFzdE1vZGlmaWVkPjIwMjQtMDEtMDFUMDA6MDA6MDAuMDAwWjwvTGFzdE1vZGlmaWVkPjxTaXplPjU8L1NpemU+PFN0b3JhZ2VDbGFzcz5TVEFOREFSRDwvU3RvcmFnZUNsYXNzPjwvQ29udGVudHM+PC9MaXN0QnVja2V0UmVzdWx0Pg=="
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11urlfalseCRC64NVME"fixture-626f61720002"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECT"
}
}
}
@@ -144319,8 +186676,9 @@
"rule": {
"is": "equal",
"value": [
- "a&b",
- "c\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\nNoSuchBucketFixture error"
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "NoSuchBucket"
+ }
},
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "container_not_found"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/list-entry-properties",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Report each listed object's last-modified time as RFC 3339 in UTC, and its storage class",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "op": "list_page",
+ "prefix": "object-tests/properties/"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -144434,7 +186842,7 @@
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -144442,19 +186850,76 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/names/"
+ "value": "GET"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
},
{
@@ -144480,6 +186945,22 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/properties/"
+ }
}
],
"allow_headers": [
@@ -144497,7 +186978,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/names/101000falseCRC64NVME"fixture-36534817118e"object-tests/names/back\\slash.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-10822d0eb6a7"object-tests/names/q?mark.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-bd8e8b1adffd"object-tests/names/a&b.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-a16607f00956"object-tests/names/percent%20.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-1b1e630ad692"object-tests/names/plus+plus.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-daab0593c9af"object-tests/names/100%-name.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-d614f09fca44"object-tests/names/space name.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-e759336a908a"object-tests/names/ctrl\u0001.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-578365eba262"object-tests/names/café.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-84af5210cfd9"object-tests/names/hash#tag.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ "data": "\nfixtureobject-tests/properties/11000falseobject-tests/properties/a.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2EXPRESS_ONEZONE"
}
}
},
@@ -144528,43 +187009,43 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/names/"
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/host",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
+ "value": "2"
}
},
{
- "at": "/headers/authorization",
+ "at": "/query/prefix",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "object-tests/properties/"
}
},
{
@@ -144591,7 +187072,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/names/101000urlfalseCRC64NVME"fixture-36534817118e"object-tests/names/back%5Cslash.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-10822d0eb6a7"object-tests/names/q%3Fmark.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-bd8e8b1adffd"object-tests/names/a%26b.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-a16607f00956"object-tests/names/percent%2520.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-1b1e630ad692"object-tests/names/plus%2Bplus.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-daab0593c9af"object-tests/names/100%25-name.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-d614f09fca44"object-tests/names/space+name.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-e759336a908a"object-tests/names/ctrl%01.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-578365eba262"object-tests/names/caf%C3%A9.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-84af5210cfd9"object-tests/names/hash%23tag.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ "data": "\nfixtureobject-tests/properties/11000urlfalseobject-tests/properties/a.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2EXPRESS_ONEZONE"
}
}
}
@@ -144612,7 +187093,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/names/back\\slash.txt"
+ "value": "object-tests/properties/a.txt"
}
},
{
@@ -144620,7 +187101,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 2
}
},
{
@@ -144628,467 +187109,27 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-36534817118e\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/q?mark.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-10822d0eb6a7\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/a&b.txt"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-bd8e8b1adffd\""
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/percent%20.txt"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-a16607f00956\""
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/4/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/plus+plus.txt"
- }
- },
- {
- "at": "/value/entries/4/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/4/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-1b1e630ad692\""
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/5/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/100%-name.txt"
- }
- },
- {
- "at": "/value/entries/5/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/5/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-daab0593c9af\""
- }
- },
- {
- "at": "/value/entries/5/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/6/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/space name.txt"
- }
- },
- {
- "at": "/value/entries/6/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/6/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-d614f09fca44\""
- }
- },
- {
- "at": "/value/entries/6/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/7/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/ctrl\u0001.txt"
- }
- },
- {
- "at": "/value/entries/7/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/7/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-e759336a908a\""
- }
- },
- {
- "at": "/value/entries/7/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/7/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/7/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/8/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/café.txt"
+ "value": "\"fixture-5070726f0000\""
}
},
{
- "at": "/value/entries/8/size",
+ "at": "/value/entries/0/last_modified",
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": "2024-01-02T03:04:05Z"
}
},
{
- "at": "/value/entries/8/etag",
+ "at": "/value/entries/0/storage_class",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-578365eba262\""
+ "value": "EXPRESS_ONEZONE"
}
},
{
- "at": "/value/entries/8/snapshot",
+ "at": "/value/entries/0/snapshot",
"optional": true,
"rule": {
"is": "one_of",
@@ -145099,7 +187140,7 @@
}
},
{
- "at": "/value/entries/8/version",
+ "at": "/value/entries/0/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -145110,7 +187151,7 @@
}
},
{
- "at": "/value/entries/8/is_current_version",
+ "at": "/value/entries/0/is_current_version",
"optional": true,
"rule": {
"is": "one_of",
@@ -145121,60 +187162,19 @@
}
},
{
- "at": "/value/entries/9/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/names/hash#tag.txt"
- }
- },
- {
- "at": "/value/entries/9/size",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
+ "is": "array_length",
"value": 1
}
},
{
- "at": "/value/entries/9/etag",
+ "at": "/value/prefixes",
"optional": false,
"rule": {
- "is": "equal",
- "value": "\"fixture-84af5210cfd9\""
- }
- },
- {
- "at": "/value/entries/9/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/9/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/9/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "is": "array_length",
+ "value": 0
}
},
{
@@ -145184,38 +187184,22 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 10
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-first-page",
+ "id": "operations/s3-express/list-checksum-algorithm",
"profile": "s3-express",
"lane": "core",
- "purpose": "Send page_size as max-keys, and report a truncated page's NextContinuationToken as the continuation token",
+ "purpose": "Report each listed object's checksum algorithm as one name; S3 keeps one checksum per object, the one a write sent or else CRC64NVME, and lists one ChecksumAlgorithm",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html",
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
"op": "list_page",
- "page_size": 2,
- "prefix": "object-tests/board/"
+ "prefix": "object-tests/checksum-listing/"
},
"exchanges": [
{
@@ -145332,15 +187316,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "object-tests/checksum-listing/"
}
},
{
@@ -145383,7 +187359,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/88ab99096baf=22trueCRC64NVME"fixture-7d1b875717fa"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-d9b959b4d7a6"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ "data": "\nfixtureobject-tests/checksum-listing/21000falseCRC32"fixture-636b736c0000"object-tests/checksum-listing/crc32.txt2024-01-01T00:00:00.000Z3EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-636b736c0001"object-tests/checksum-listing/none.txt2024-01-01T00:00:00.000Z4EXPRESS_ONEZONEFULL_OBJECT"
}
}
},
@@ -145426,15 +187402,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "object-tests/checksum-listing/"
}
},
{
- "at": "/query/max-keys",
+ "at": "/query/encoding-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "url"
}
},
{
@@ -145460,14 +187436,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
- }
}
],
"allow_headers": [
@@ -145485,7 +187453,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/88ab99096baf=22urltrueCRC64NVME"fixture-7d1b875717fa"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-d9b959b4d7a6"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ "data": "\nfixtureobject-tests/checksum-listing/21000urlfalseCRC32"fixture-636b736c0000"object-tests/checksum-listing/crc32.txt2024-01-01T00:00:00.000Z3EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-636b736c0001"object-tests/checksum-listing/none.txt2024-01-01T00:00:00.000Z4EXPRESS_ONEZONEFULL_OBJECT"
}
}
}
@@ -145506,7 +187474,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/z.txt"
+ "value": "object-tests/checksum-listing/crc32.txt"
}
},
{
@@ -145514,7 +187482,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 2
+ "value": 3
}
},
{
@@ -145522,7 +187490,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-7d1b875717fa\""
+ "value": "\"fixture-636b736c0000\""
+ }
+ },
+ {
+ "at": "/value/entries/0/checksum_algorithm",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "CRC32"
}
},
{
@@ -145563,7 +187539,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/nested/c.txt"
+ "value": "object-tests/checksum-listing/none.txt"
}
},
{
@@ -145571,7 +187547,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 4
}
},
{
@@ -145579,7 +187555,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-d9b959b4d7a6\""
+ "value": "\"fixture-636b736c0001\""
+ }
+ },
+ {
+ "at": "/value/entries/1/checksum_algorithm",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "CRC64NVME"
}
},
{
@@ -145615,14 +187599,6 @@
]
}
},
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-marker+/88ab99096baf="
- }
- },
{
"at": "/value/entries",
"optional": false,
@@ -145638,23 +187614,30 @@
"is": "array_length",
"value": 0
}
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-service-unavailable",
+ "id": "operations/s3-express/list-fetch-owner",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report a 503 ServiceUnavailable answer as an error, after at most 5 retries",
+ "purpose": "Ask for owners with fetch-owner=true, and report each listed object's owner ID",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "transient",
"call": {
+ "fetch_owner": true,
"op": "list_page",
- "page_size": 2,
- "prefix": "object-tests/board/"
+ "prefix": "object-tests/owner/"
},
"exchanges": [
{
@@ -145759,51 +187742,51 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "fixture-session-token"
}
},
{
- "at": "/query/max-keys",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/host",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "value": "2"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
+ "value": "object-tests/owner/"
}
},
{
- "at": "/headers/authorization",
+ "at": "/query/fetch-owner",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "true"
}
}
],
@@ -145812,18 +187795,18 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "data": "\nfixtureobject-tests/owner/11000falseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idEXPRESS_ONEZONE"
+ }
}
},
{
@@ -145853,27 +187836,224 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/query/list-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/prefix",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/owner/"
+ }
+ },
+ {
+ "at": "/query/fetch-owner",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "true"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/owner/11000urlfalseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idEXPRESS_ONEZONE"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/entries/0/key",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/owner/a.txt"
+ }
+ },
+ {
+ "at": "/value/entries/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/entries/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-6f776e650000\""
+ }
+ },
+ {
+ "at": "/value/entries/0/owner_id",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-owner-id"
+ }
+ },
+ {
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
+ }
+ },
+ {
+ "at": "/value/entries",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 0
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/list-over-1000",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "List more keys than the service's default page of 1,000 by following the continuation token",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "op": "list",
+ "prefix": "object-tests/many/"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "GET"
}
},
{
- "at": "/query/prefix",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "/"
}
},
{
- "at": "/query/max-keys",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": ""
}
},
{
@@ -145884,28 +188064,19 @@
"value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
{
"at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "url"
+ "is": "absent"
}
}
],
@@ -145914,18 +188085,18 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
]
@@ -145971,15 +188142,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "object-tests/many/"
}
},
{
@@ -146012,18 +188175,18 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=10001000trueCRC64NVME"fixture-6d610000"object-tests/many/00002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610001"object-tests/many/00012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610002"object-tests/many/00022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610003"object-tests/many/00032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610004"object-tests/many/00042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610005"object-tests/many/00052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610006"object-tests/many/00062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610007"object-tests/many/00072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610008"object-tests/many/00082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610009"object-tests/many/00092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000a"object-tests/many/00102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000b"object-tests/many/00112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000c"object-tests/many/00122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000d"object-tests/many/00132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000e"object-tests/many/00142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000f"object-tests/many/00152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610010"object-tests/many/00162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610011"object-tests/many/00172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610012"object-tests/many/00182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610013"object-tests/many/00192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610014"object-tests/many/00202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610015"object-tests/many/00212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610016"object-tests/many/00222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610017"object-tests/many/00232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610018"object-tests/many/00242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610019"object-tests/many/00252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001a"object-tests/many/00262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001b"object-tests/many/00272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001c"object-tests/many/00282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001d"object-tests/many/00292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001e"object-tests/many/00302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001f"object-tests/many/00312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610020"object-tests/many/00322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610021"object-tests/many/00332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610022"object-tests/many/00342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610023"object-tests/many/00352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610024"object-tests/many/00362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610025"object-tests/many/00372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610026"object-tests/many/00382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610027"object-tests/many/00392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610028"object-tests/many/00402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610029"object-tests/many/00412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002a"object-tests/many/00422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002b"object-tests/many/00432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002c"object-tests/many/00442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002d"object-tests/many/00452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002e"object-tests/many/00462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002f"object-tests/many/00472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610030"object-tests/many/00482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610031"object-tests/many/00492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610032"object-tests/many/00502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610033"object-tests/many/00512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610034"object-tests/many/00522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610035"object-tests/many/00532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610036"object-tests/many/00542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610037"object-tests/many/00552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610038"object-tests/many/00562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610039"object-tests/many/00572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003a"object-tests/many/00582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003b"object-tests/many/00592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003c"object-tests/many/00602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003d"object-tests/many/00612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003e"object-tests/many/00622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003f"object-tests/many/00632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610040"object-tests/many/00642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610041"object-tests/many/00652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610042"object-tests/many/00662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610043"object-tests/many/00672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610044"object-tests/many/00682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610045"object-tests/many/00692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610046"object-tests/many/00702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610047"object-tests/many/00712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610048"object-tests/many/00722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610049"object-tests/many/00732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004a"object-tests/many/00742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004b"object-tests/many/00752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004c"object-tests/many/00762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004d"object-tests/many/00772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004e"object-tests/many/00782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004f"object-tests/many/00792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610050"object-tests/many/00802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610051"object-tests/many/00812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610052"object-tests/many/00822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610053"object-tests/many/00832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610054"object-tests/many/00842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610055"object-tests/many/00852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610056"object-tests/many/00862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610057"object-tests/many/00872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610058"object-tests/many/00882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610059"object-tests/many/00892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005a"object-tests/many/00902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005b"object-tests/many/00912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005c"object-tests/many/00922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005d"object-tests/many/00932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005e"object-tests/many/00942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005f"object-tests/many/00952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610060"object-tests/many/00962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610061"object-tests/many/00972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610062"object-tests/many/00982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610063"object-tests/many/00992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610064"object-tests/many/01002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610065"object-tests/many/01012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610066"object-tests/many/01022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610067"object-tests/many/01032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610068"object-tests/many/01042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610069"object-tests/many/01052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006a"object-tests/many/01062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006b"object-tests/many/01072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006c"object-tests/many/01082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006d"object-tests/many/01092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006e"object-tests/many/01102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006f"object-tests/many/01112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610070"object-tests/many/01122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610071"object-tests/many/01132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610072"object-tests/many/01142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610073"object-tests/many/01152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610074"object-tests/many/01162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610075"object-tests/many/01172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610076"object-tests/many/01182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610077"object-tests/many/01192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610078"object-tests/many/01202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610079"object-tests/many/01212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007a"object-tests/many/01222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007b"object-tests/many/01232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007c"object-tests/many/01242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007d"object-tests/many/01252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007e"object-tests/many/01262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007f"object-tests/many/01272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610080"object-tests/many/01282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610081"object-tests/many/01292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610082"object-tests/many/01302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610083"object-tests/many/01312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610084"object-tests/many/01322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610085"object-tests/many/01332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610086"object-tests/many/01342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610087"object-tests/many/01352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610088"object-tests/many/01362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610089"object-tests/many/01372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008a"object-tests/many/01382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008b"object-tests/many/01392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008c"object-tests/many/01402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008d"object-tests/many/01412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008e"object-tests/many/01422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008f"object-tests/many/01432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610090"object-tests/many/01442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610091"object-tests/many/01452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610092"object-tests/many/01462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610093"object-tests/many/01472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610094"object-tests/many/01482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610095"object-tests/many/01492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610096"object-tests/many/01502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610097"object-tests/many/01512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610098"object-tests/many/01522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610099"object-tests/many/01532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009a"object-tests/many/01542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009b"object-tests/many/01552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009c"object-tests/many/01562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009d"object-tests/many/01572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009e"object-tests/many/01582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009f"object-tests/many/01592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a0"object-tests/many/01602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a1"object-tests/many/01612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a2"object-tests/many/01622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a3"object-tests/many/01632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a4"object-tests/many/01642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a5"object-tests/many/01652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a6"object-tests/many/01662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a7"object-tests/many/01672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a8"object-tests/many/01682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a9"object-tests/many/01692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100aa"object-tests/many/01702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ab"object-tests/many/01712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ac"object-tests/many/01722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ad"object-tests/many/01732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ae"object-tests/many/01742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100af"object-tests/many/01752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b0"object-tests/many/01762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b1"object-tests/many/01772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b2"object-tests/many/01782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b3"object-tests/many/01792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b4"object-tests/many/01802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b5"object-tests/many/01812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b6"object-tests/many/01822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b7"object-tests/many/01832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b8"object-tests/many/01842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b9"object-tests/many/01852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ba"object-tests/many/01862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bb"object-tests/many/01872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bc"object-tests/many/01882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bd"object-tests/many/01892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100be"object-tests/many/01902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bf"object-tests/many/01912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c0"object-tests/many/01922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c1"object-tests/many/01932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c2"object-tests/many/01942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c3"object-tests/many/01952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c4"object-tests/many/01962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c5"object-tests/many/01972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c6"object-tests/many/01982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c7"object-tests/many/01992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c8"object-tests/many/02002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c9"object-tests/many/02012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ca"object-tests/many/02022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cb"object-tests/many/02032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cc"object-tests/many/02042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cd"object-tests/many/02052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ce"object-tests/many/02062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cf"object-tests/many/02072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d0"object-tests/many/02082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d1"object-tests/many/02092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d2"object-tests/many/02102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d3"object-tests/many/02112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d4"object-tests/many/02122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d5"object-tests/many/02132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d6"object-tests/many/02142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d7"object-tests/many/02152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d8"object-tests/many/02162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d9"object-tests/many/02172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100da"object-tests/many/02182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100db"object-tests/many/02192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100dc"object-tests/many/02202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100dd"object-tests/many/02212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100de"object-tests/many/02222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100df"object-tests/many/02232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e0"object-tests/many/02242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e1"object-tests/many/02252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e2"object-tests/many/02262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e3"object-tests/many/02272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e4"object-tests/many/02282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e5"object-tests/many/02292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e6"object-tests/many/02302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e7"object-tests/many/02312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e8"object-tests/many/02322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e9"object-tests/many/02332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ea"object-tests/many/02342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100eb"object-tests/many/02352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ec"object-tests/many/02362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ed"object-tests/many/02372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ee"object-tests/many/02382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ef"object-tests/many/02392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f0"object-tests/many/02402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f1"object-tests/many/02412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f2"object-tests/many/02422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f3"object-tests/many/02432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f4"object-tests/many/02442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f5"object-tests/many/02452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f6"object-tests/many/02462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f7"object-tests/many/02472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f8"object-tests/many/02482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f9"object-tests/many/02492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fa"object-tests/many/02502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fb"object-tests/many/02512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fc"object-tests/many/02522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fd"object-tests/many/02532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fe"object-tests/many/02542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ff"object-tests/many/02552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610100"object-tests/many/02562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610101"object-tests/many/02572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610102"object-tests/many/02582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610103"object-tests/many/02592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610104"object-tests/many/02602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610105"object-tests/many/02612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610106"object-tests/many/02622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610107"object-tests/many/02632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610108"object-tests/many/02642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610109"object-tests/many/02652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010a"object-tests/many/02662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010b"object-tests/many/02672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010c"object-tests/many/02682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010d"object-tests/many/02692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010e"object-tests/many/02702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010f"object-tests/many/02712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610110"object-tests/many/02722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610111"object-tests/many/02732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610112"object-tests/many/02742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610113"object-tests/many/02752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610114"object-tests/many/02762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610115"object-tests/many/02772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610116"object-tests/many/02782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610117"object-tests/many/02792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610118"object-tests/many/02802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610119"object-tests/many/02812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011a"object-tests/many/02822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011b"object-tests/many/02832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011c"object-tests/many/02842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011d"object-tests/many/02852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011e"object-tests/many/02862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011f"object-tests/many/02872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610120"object-tests/many/02882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610121"object-tests/many/02892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610122"object-tests/many/02902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610123"object-tests/many/02912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610124"object-tests/many/02922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610125"object-tests/many/02932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610126"object-tests/many/02942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610127"object-tests/many/02952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610128"object-tests/many/02962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610129"object-tests/many/02972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012a"object-tests/many/02982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012b"object-tests/many/02992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012c"object-tests/many/03002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012d"object-tests/many/03012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012e"object-tests/many/03022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012f"object-tests/many/03032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610130"object-tests/many/03042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610131"object-tests/many/03052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610132"object-tests/many/03062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610133"object-tests/many/03072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610134"object-tests/many/03082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610135"object-tests/many/03092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610136"object-tests/many/03102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610137"object-tests/many/03112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610138"object-tests/many/03122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610139"object-tests/many/03132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013a"object-tests/many/03142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013b"object-tests/many/03152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013c"object-tests/many/03162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013d"object-tests/many/03172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013e"object-tests/many/03182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013f"object-tests/many/03192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610140"object-tests/many/03202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610141"object-tests/many/03212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610142"object-tests/many/03222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610143"object-tests/many/03232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610144"object-tests/many/03242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610145"object-tests/many/03252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610146"object-tests/many/03262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610147"object-tests/many/03272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610148"object-tests/many/03282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610149"object-tests/many/03292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014a"object-tests/many/03302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014b"object-tests/many/03312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014c"object-tests/many/03322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014d"object-tests/many/03332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014e"object-tests/many/03342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014f"object-tests/many/03352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610150"object-tests/many/03362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610151"object-tests/many/03372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610152"object-tests/many/03382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610153"object-tests/many/03392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610154"object-tests/many/03402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610155"object-tests/many/03412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610156"object-tests/many/03422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610157"object-tests/many/03432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610158"object-tests/many/03442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610159"object-tests/many/03452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015a"object-tests/many/03462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015b"object-tests/many/03472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015c"object-tests/many/03482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015d"object-tests/many/03492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015e"object-tests/many/03502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015f"object-tests/many/03512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610160"object-tests/many/03522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610161"object-tests/many/03532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610162"object-tests/many/03542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610163"object-tests/many/03552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610164"object-tests/many/03562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610165"object-tests/many/03572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610166"object-tests/many/03582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610167"object-tests/many/03592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610168"object-tests/many/03602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610169"object-tests/many/03612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016a"object-tests/many/03622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016b"object-tests/many/03632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016c"object-tests/many/03642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016d"object-tests/many/03652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016e"object-tests/many/03662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016f"object-tests/many/03672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610170"object-tests/many/03682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610171"object-tests/many/03692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610172"object-tests/many/03702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610173"object-tests/many/03712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610174"object-tests/many/03722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610175"object-tests/many/03732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610176"object-tests/many/03742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610177"object-tests/many/03752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610178"object-tests/many/03762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610179"object-tests/many/03772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017a"object-tests/many/03782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017b"object-tests/many/03792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017c"object-tests/many/03802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017d"object-tests/many/03812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017e"object-tests/many/03822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017f"object-tests/many/03832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610180"object-tests/many/03842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610181"object-tests/many/03852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610182"object-tests/many/03862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610183"object-tests/many/03872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610184"object-tests/many/03882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610185"object-tests/many/03892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610186"object-tests/many/03902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610187"object-tests/many/03912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610188"object-tests/many/03922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610189"object-tests/many/03932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018a"object-tests/many/03942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018b"object-tests/many/03952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018c"object-tests/many/03962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018d"object-tests/many/03972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018e"object-tests/many/03982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018f"object-tests/many/03992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610190"object-tests/many/04002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610191"object-tests/many/04012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610192"object-tests/many/04022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610193"object-tests/many/04032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610194"object-tests/many/04042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610195"object-tests/many/04052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610196"object-tests/many/04062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610197"object-tests/many/04072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610198"object-tests/many/04082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610199"object-tests/many/04092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019a"object-tests/many/04102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019b"object-tests/many/04112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019c"object-tests/many/04122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019d"object-tests/many/04132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019e"object-tests/many/04142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019f"object-tests/many/04152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a0"object-tests/many/04162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a1"object-tests/many/04172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a2"object-tests/many/04182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a3"object-tests/many/04192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a4"object-tests/many/04202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a5"object-tests/many/04212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a6"object-tests/many/04222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a7"object-tests/many/04232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a8"object-tests/many/04242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a9"object-tests/many/04252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101aa"object-tests/many/04262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ab"object-tests/many/04272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ac"object-tests/many/04282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ad"object-tests/many/04292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ae"object-tests/many/04302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101af"object-tests/many/04312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b0"object-tests/many/04322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b1"object-tests/many/04332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b2"object-tests/many/04342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b3"object-tests/many/04352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b4"object-tests/many/04362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b5"object-tests/many/04372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b6"object-tests/many/04382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b7"object-tests/many/04392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b8"object-tests/many/04402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b9"object-tests/many/04412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ba"object-tests/many/04422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bb"object-tests/many/04432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bc"object-tests/many/04442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bd"object-tests/many/04452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101be"object-tests/many/04462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bf"object-tests/many/04472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c0"object-tests/many/04482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c1"object-tests/many/04492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c2"object-tests/many/04502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c3"object-tests/many/04512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c4"object-tests/many/04522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c5"object-tests/many/04532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c6"object-tests/many/04542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c7"object-tests/many/04552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c8"object-tests/many/04562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c9"object-tests/many/04572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ca"object-tests/many/04582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cb"object-tests/many/04592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cc"object-tests/many/04602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cd"object-tests/many/04612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ce"object-tests/many/04622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cf"object-tests/many/04632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d0"object-tests/many/04642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d1"object-tests/many/04652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d2"object-tests/many/04662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d3"object-tests/many/04672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d4"object-tests/many/04682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d5"object-tests/many/04692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d6"object-tests/many/04702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d7"object-tests/many/04712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d8"object-tests/many/04722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d9"object-tests/many/04732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101da"object-tests/many/04742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101db"object-tests/many/04752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101dc"object-tests/many/04762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101dd"object-tests/many/04772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101de"object-tests/many/04782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101df"object-tests/many/04792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e0"object-tests/many/04802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e1"object-tests/many/04812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e2"object-tests/many/04822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e3"object-tests/many/04832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e4"object-tests/many/04842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e5"object-tests/many/04852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e6"object-tests/many/04862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e7"object-tests/many/04872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e8"object-tests/many/04882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e9"object-tests/many/04892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ea"object-tests/many/04902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101eb"object-tests/many/04912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ec"object-tests/many/04922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ed"object-tests/many/04932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ee"object-tests/many/04942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ef"object-tests/many/04952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f0"object-tests/many/04962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f1"object-tests/many/04972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f2"object-tests/many/04982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f3"object-tests/many/04992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f4"object-tests/many/05002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f5"object-tests/many/05012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f6"object-tests/many/05022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f7"object-tests/many/05032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f8"object-tests/many/05042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f9"object-tests/many/05052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fa"object-tests/many/05062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fb"object-tests/many/05072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fc"object-tests/many/05082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fd"object-tests/many/05092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fe"object-tests/many/05102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ff"object-tests/many/05112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610200"object-tests/many/05122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610201"object-tests/many/05132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610202"object-tests/many/05142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610203"object-tests/many/05152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610204"object-tests/many/05162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610205"object-tests/many/05172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610206"object-tests/many/05182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610207"object-tests/many/05192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610208"object-tests/many/05202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610209"object-tests/many/05212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020a"object-tests/many/05222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020b"object-tests/many/05232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020c"object-tests/many/05242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020d"object-tests/many/05252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020e"object-tests/many/05262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020f"object-tests/many/05272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610210"object-tests/many/05282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610211"object-tests/many/05292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610212"object-tests/many/05302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610213"object-tests/many/05312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610214"object-tests/many/05322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610215"object-tests/many/05332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610216"object-tests/many/05342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610217"object-tests/many/05352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610218"object-tests/many/05362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610219"object-tests/many/05372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021a"object-tests/many/05382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021b"object-tests/many/05392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021c"object-tests/many/05402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021d"object-tests/many/05412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021e"object-tests/many/05422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021f"object-tests/many/05432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610220"object-tests/many/05442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610221"object-tests/many/05452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610222"object-tests/many/05462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610223"object-tests/many/05472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610224"object-tests/many/05482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610225"object-tests/many/05492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610226"object-tests/many/05502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610227"object-tests/many/05512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610228"object-tests/many/05522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610229"object-tests/many/05532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022a"object-tests/many/05542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022b"object-tests/many/05552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022c"object-tests/many/05562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022d"object-tests/many/05572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022e"object-tests/many/05582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022f"object-tests/many/05592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610230"object-tests/many/05602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610231"object-tests/many/05612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610232"object-tests/many/05622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610233"object-tests/many/05632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610234"object-tests/many/05642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610235"object-tests/many/05652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610236"object-tests/many/05662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610237"object-tests/many/05672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610238"object-tests/many/05682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610239"object-tests/many/05692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023a"object-tests/many/05702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023b"object-tests/many/05712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023c"object-tests/many/05722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023d"object-tests/many/05732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023e"object-tests/many/05742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023f"object-tests/many/05752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610240"object-tests/many/05762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610241"object-tests/many/05772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610242"object-tests/many/05782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610243"object-tests/many/05792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610244"object-tests/many/05802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610245"object-tests/many/05812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610246"object-tests/many/05822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610247"object-tests/many/05832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610248"object-tests/many/05842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610249"object-tests/many/05852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024a"object-tests/many/05862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024b"object-tests/many/05872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024c"object-tests/many/05882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024d"object-tests/many/05892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024e"object-tests/many/05902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024f"object-tests/many/05912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610250"object-tests/many/05922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610251"object-tests/many/05932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610252"object-tests/many/05942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610253"object-tests/many/05952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610254"object-tests/many/05962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610255"object-tests/many/05972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610256"object-tests/many/05982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610257"object-tests/many/05992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610258"object-tests/many/06002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610259"object-tests/many/06012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025a"object-tests/many/06022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025b"object-tests/many/06032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025c"object-tests/many/06042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025d"object-tests/many/06052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025e"object-tests/many/06062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025f"object-tests/many/06072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610260"object-tests/many/06082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610261"object-tests/many/06092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610262"object-tests/many/06102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610263"object-tests/many/06112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610264"object-tests/many/06122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610265"object-tests/many/06132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610266"object-tests/many/06142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610267"object-tests/many/06152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610268"object-tests/many/06162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610269"object-tests/many/06172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026a"object-tests/many/06182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026b"object-tests/many/06192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026c"object-tests/many/06202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026d"object-tests/many/06212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026e"object-tests/many/06222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026f"object-tests/many/06232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610270"object-tests/many/06242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610271"object-tests/many/06252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610272"object-tests/many/06262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610273"object-tests/many/06272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610274"object-tests/many/06282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610275"object-tests/many/06292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610276"object-tests/many/06302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610277"object-tests/many/06312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610278"object-tests/many/06322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610279"object-tests/many/06332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027a"object-tests/many/06342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027b"object-tests/many/06352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027c"object-tests/many/06362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027d"object-tests/many/06372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027e"object-tests/many/06382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027f"object-tests/many/06392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610280"object-tests/many/06402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610281"object-tests/many/06412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610282"object-tests/many/06422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610283"object-tests/many/06432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610284"object-tests/many/06442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610285"object-tests/many/06452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610286"object-tests/many/06462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610287"object-tests/many/06472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610288"object-tests/many/06482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610289"object-tests/many/06492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028a"object-tests/many/06502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028b"object-tests/many/06512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028c"object-tests/many/06522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028d"object-tests/many/06532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028e"object-tests/many/06542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028f"object-tests/many/06552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610290"object-tests/many/06562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610291"object-tests/many/06572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610292"object-tests/many/06582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610293"object-tests/many/06592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610294"object-tests/many/06602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610295"object-tests/many/06612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610296"object-tests/many/06622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610297"object-tests/many/06632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610298"object-tests/many/06642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610299"object-tests/many/06652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029a"object-tests/many/06662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029b"object-tests/many/06672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029c"object-tests/many/06682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029d"object-tests/many/06692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029e"object-tests/many/06702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029f"object-tests/many/06712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a0"object-tests/many/06722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a1"object-tests/many/06732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a2"object-tests/many/06742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a3"object-tests/many/06752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a4"object-tests/many/06762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a5"object-tests/many/06772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a6"object-tests/many/06782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a7"object-tests/many/06792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a8"object-tests/many/06802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a9"object-tests/many/06812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102aa"object-tests/many/06822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ab"object-tests/many/06832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ac"object-tests/many/06842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ad"object-tests/many/06852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ae"object-tests/many/06862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102af"object-tests/many/06872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b0"object-tests/many/06882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b1"object-tests/many/06892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b2"object-tests/many/06902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b3"object-tests/many/06912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b4"object-tests/many/06922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b5"object-tests/many/06932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b6"object-tests/many/06942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b7"object-tests/many/06952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b8"object-tests/many/06962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b9"object-tests/many/06972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ba"object-tests/many/06982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bb"object-tests/many/06992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bc"object-tests/many/07002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bd"object-tests/many/07012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102be"object-tests/many/07022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bf"object-tests/many/07032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c0"object-tests/many/07042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c1"object-tests/many/07052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c2"object-tests/many/07062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c3"object-tests/many/07072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c4"object-tests/many/07082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c5"object-tests/many/07092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c6"object-tests/many/07102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c7"object-tests/many/07112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c8"object-tests/many/07122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c9"object-tests/many/07132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ca"object-tests/many/07142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cb"object-tests/many/07152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cc"object-tests/many/07162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cd"object-tests/many/07172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ce"object-tests/many/07182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cf"object-tests/many/07192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d0"object-tests/many/07202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d1"object-tests/many/07212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d2"object-tests/many/07222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d3"object-tests/many/07232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d4"object-tests/many/07242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d5"object-tests/many/07252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d6"object-tests/many/07262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d7"object-tests/many/07272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d8"object-tests/many/07282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d9"object-tests/many/07292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102da"object-tests/many/07302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102db"object-tests/many/07312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102dc"object-tests/many/07322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102dd"object-tests/many/07332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102de"object-tests/many/07342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102df"object-tests/many/07352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e0"object-tests/many/07362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e1"object-tests/many/07372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e2"object-tests/many/07382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e3"object-tests/many/07392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e4"object-tests/many/07402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e5"object-tests/many/07412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e6"object-tests/many/07422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e7"object-tests/many/07432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e8"object-tests/many/07442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e9"object-tests/many/07452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ea"object-tests/many/07462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102eb"object-tests/many/07472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ec"object-tests/many/07482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ed"object-tests/many/07492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ee"object-tests/many/07502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ef"object-tests/many/07512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f0"object-tests/many/07522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f1"object-tests/many/07532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f2"object-tests/many/07542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f3"object-tests/many/07552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f4"object-tests/many/07562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f5"object-tests/many/07572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f6"object-tests/many/07582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f7"object-tests/many/07592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f8"object-tests/many/07602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f9"object-tests/many/07612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fa"object-tests/many/07622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fb"object-tests/many/07632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fc"object-tests/many/07642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fd"object-tests/many/07652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fe"object-tests/many/07662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ff"object-tests/many/07672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610300"object-tests/many/07682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610301"object-tests/many/07692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610302"object-tests/many/07702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610303"object-tests/many/07712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610304"object-tests/many/07722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610305"object-tests/many/07732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610306"object-tests/many/07742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610307"object-tests/many/07752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610308"object-tests/many/07762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610309"object-tests/many/07772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030a"object-tests/many/07782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030b"object-tests/many/07792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030c"object-tests/many/07802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030d"object-tests/many/07812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030e"object-tests/many/07822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030f"object-tests/many/07832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610310"object-tests/many/07842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610311"object-tests/many/07852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610312"object-tests/many/07862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610313"object-tests/many/07872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610314"object-tests/many/07882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610315"object-tests/many/07892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610316"object-tests/many/07902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610317"object-tests/many/07912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610318"object-tests/many/07922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610319"object-tests/many/07932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031a"object-tests/many/07942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031b"object-tests/many/07952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031c"object-tests/many/07962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031d"object-tests/many/07972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031e"object-tests/many/07982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031f"object-tests/many/07992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610320"object-tests/many/08002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610321"object-tests/many/08012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610322"object-tests/many/08022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610323"object-tests/many/08032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610324"object-tests/many/08042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610325"object-tests/many/08052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610326"object-tests/many/08062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610327"object-tests/many/08072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610328"object-tests/many/08082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610329"object-tests/many/08092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032a"object-tests/many/08102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032b"object-tests/many/08112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032c"object-tests/many/08122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032d"object-tests/many/08132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032e"object-tests/many/08142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032f"object-tests/many/08152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610330"object-tests/many/08162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610331"object-tests/many/08172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610332"object-tests/many/08182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610333"object-tests/many/08192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610334"object-tests/many/08202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610335"object-tests/many/08212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610336"object-tests/many/08222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610337"object-tests/many/08232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610338"object-tests/many/08242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610339"object-tests/many/08252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033a"object-tests/many/08262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033b"object-tests/many/08272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033c"object-tests/many/08282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033d"object-tests/many/08292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033e"object-tests/many/08302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033f"object-tests/many/08312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610340"object-tests/many/08322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610341"object-tests/many/08332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610342"object-tests/many/08342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610343"object-tests/many/08352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610344"object-tests/many/08362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610345"object-tests/many/08372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610346"object-tests/many/08382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610347"object-tests/many/08392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610348"object-tests/many/08402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610349"object-tests/many/08412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034a"object-tests/many/08422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034b"object-tests/many/08432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034c"object-tests/many/08442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034d"object-tests/many/08452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034e"object-tests/many/08462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034f"object-tests/many/08472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610350"object-tests/many/08482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610351"object-tests/many/08492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610352"object-tests/many/08502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610353"object-tests/many/08512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610354"object-tests/many/08522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610355"object-tests/many/08532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610356"object-tests/many/08542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610357"object-tests/many/08552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610358"object-tests/many/08562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610359"object-tests/many/08572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035a"object-tests/many/08582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035b"object-tests/many/08592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035c"object-tests/many/08602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035d"object-tests/many/08612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035e"object-tests/many/08622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035f"object-tests/many/08632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610360"object-tests/many/08642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610361"object-tests/many/08652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610362"object-tests/many/08662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610363"object-tests/many/08672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610364"object-tests/many/08682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610365"object-tests/many/08692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610366"object-tests/many/08702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610367"object-tests/many/08712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610368"object-tests/many/08722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610369"object-tests/many/08732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036a"object-tests/many/08742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036b"object-tests/many/08752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036c"object-tests/many/08762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036d"object-tests/many/08772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036e"object-tests/many/08782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036f"object-tests/many/08792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610370"object-tests/many/08802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610371"object-tests/many/08812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610372"object-tests/many/08822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610373"object-tests/many/08832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610374"object-tests/many/08842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610375"object-tests/many/08852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610376"object-tests/many/08862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610377"object-tests/many/08872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610378"object-tests/many/08882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610379"object-tests/many/08892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037a"object-tests/many/08902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037b"object-tests/many/08912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037c"object-tests/many/08922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037d"object-tests/many/08932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037e"object-tests/many/08942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037f"object-tests/many/08952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610380"object-tests/many/08962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610381"object-tests/many/08972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610382"object-tests/many/08982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610383"object-tests/many/08992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610384"object-tests/many/09002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610385"object-tests/many/09012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610386"object-tests/many/09022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610387"object-tests/many/09032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610388"object-tests/many/09042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610389"object-tests/many/09052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038a"object-tests/many/09062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038b"object-tests/many/09072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038c"object-tests/many/09082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038d"object-tests/many/09092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038e"object-tests/many/09102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038f"object-tests/many/09112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610390"object-tests/many/09122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610391"object-tests/many/09132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610392"object-tests/many/09142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610393"object-tests/many/09152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610394"object-tests/many/09162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610395"object-tests/many/09172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610396"object-tests/many/09182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610397"object-tests/many/09192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610398"object-tests/many/09202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610399"object-tests/many/09212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039a"object-tests/many/09222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039b"object-tests/many/09232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039c"object-tests/many/09242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039d"object-tests/many/09252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039e"object-tests/many/09262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039f"object-tests/many/09272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a0"object-tests/many/09282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a1"object-tests/many/09292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a2"object-tests/many/09302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a3"object-tests/many/09312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a4"object-tests/many/09322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a5"object-tests/many/09332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a6"object-tests/many/09342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a7"object-tests/many/09352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a8"object-tests/many/09362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a9"object-tests/many/09372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103aa"object-tests/many/09382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ab"object-tests/many/09392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ac"object-tests/many/09402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ad"object-tests/many/09412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ae"object-tests/many/09422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103af"object-tests/many/09432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b0"object-tests/many/09442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b1"object-tests/many/09452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b2"object-tests/many/09462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b3"object-tests/many/09472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b4"object-tests/many/09482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b5"object-tests/many/09492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b6"object-tests/many/09502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b7"object-tests/many/09512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b8"object-tests/many/09522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b9"object-tests/many/09532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ba"object-tests/many/09542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bb"object-tests/many/09552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bc"object-tests/many/09562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bd"object-tests/many/09572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103be"object-tests/many/09582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bf"object-tests/many/09592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c0"object-tests/many/09602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c1"object-tests/many/09612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c2"object-tests/many/09622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c3"object-tests/many/09632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c4"object-tests/many/09642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c5"object-tests/many/09652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c6"object-tests/many/09662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c7"object-tests/many/09672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c8"object-tests/many/09682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c9"object-tests/many/09692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ca"object-tests/many/09702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cb"object-tests/many/09712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cc"object-tests/many/09722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cd"object-tests/many/09732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ce"object-tests/many/09742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cf"object-tests/many/09752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d0"object-tests/many/09762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d1"object-tests/many/09772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d2"object-tests/many/09782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d3"object-tests/many/09792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d4"object-tests/many/09802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d5"object-tests/many/09812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d6"object-tests/many/09822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d7"object-tests/many/09832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d8"object-tests/many/09842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d9"object-tests/many/09852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103da"object-tests/many/09862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103db"object-tests/many/09872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103dc"object-tests/many/09882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103dd"object-tests/many/09892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103de"object-tests/many/09902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103df"object-tests/many/09912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e0"object-tests/many/09922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e1"object-tests/many/09932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e2"object-tests/many/09942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e3"object-tests/many/09952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e4"object-tests/many/09962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e5"object-tests/many/09972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e6"object-tests/many/09982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e7"object-tests/many/09992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ }
}
},
{
@@ -146065,15 +188228,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "object-tests/many/"
}
},
{
- "at": "/query/max-keys",
+ "at": "/query/encoding-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "url"
}
},
{
@@ -146099,14 +188262,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
- }
}
],
"allow_headers": [
@@ -146114,22 +188269,21 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=10001000urltrueCRC64NVME"fixture-6d610000"object-tests/many/00002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610001"object-tests/many/00012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610002"object-tests/many/00022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610003"object-tests/many/00032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610004"object-tests/many/00042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610005"object-tests/many/00052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610006"object-tests/many/00062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610007"object-tests/many/00072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610008"object-tests/many/00082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610009"object-tests/many/00092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000a"object-tests/many/00102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000b"object-tests/many/00112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000c"object-tests/many/00122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000d"object-tests/many/00132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000e"object-tests/many/00142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000f"object-tests/many/00152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610010"object-tests/many/00162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610011"object-tests/many/00172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610012"object-tests/many/00182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610013"object-tests/many/00192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610014"object-tests/many/00202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610015"object-tests/many/00212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610016"object-tests/many/00222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610017"object-tests/many/00232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610018"object-tests/many/00242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610019"object-tests/many/00252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001a"object-tests/many/00262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001b"object-tests/many/00272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001c"object-tests/many/00282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001d"object-tests/many/00292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001e"object-tests/many/00302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001f"object-tests/many/00312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610020"object-tests/many/00322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610021"object-tests/many/00332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610022"object-tests/many/00342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610023"object-tests/many/00352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610024"object-tests/many/00362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610025"object-tests/many/00372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610026"object-tests/many/00382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610027"object-tests/many/00392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610028"object-tests/many/00402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610029"object-tests/many/00412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002a"object-tests/many/00422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002b"object-tests/many/00432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002c"object-tests/many/00442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002d"object-tests/many/00452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002e"object-tests/many/00462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002f"object-tests/many/00472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610030"object-tests/many/00482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610031"object-tests/many/00492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610032"object-tests/many/00502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610033"object-tests/many/00512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610034"object-tests/many/00522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610035"object-tests/many/00532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610036"object-tests/many/00542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610037"object-tests/many/00552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610038"object-tests/many/00562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610039"object-tests/many/00572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003a"object-tests/many/00582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003b"object-tests/many/00592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003c"object-tests/many/00602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003d"object-tests/many/00612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003e"object-tests/many/00622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003f"object-tests/many/00632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610040"object-tests/many/00642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610041"object-tests/many/00652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610042"object-tests/many/00662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610043"object-tests/many/00672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610044"object-tests/many/00682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610045"object-tests/many/00692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610046"object-tests/many/00702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610047"object-tests/many/00712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610048"object-tests/many/00722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610049"object-tests/many/00732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004a"object-tests/many/00742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004b"object-tests/many/00752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004c"object-tests/many/00762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004d"object-tests/many/00772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004e"object-tests/many/00782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004f"object-tests/many/00792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610050"object-tests/many/00802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610051"object-tests/many/00812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610052"object-tests/many/00822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610053"object-tests/many/00832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610054"object-tests/many/00842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610055"object-tests/many/00852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610056"object-tests/many/00862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610057"object-tests/many/00872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610058"object-tests/many/00882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610059"object-tests/many/00892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005a"object-tests/many/00902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005b"object-tests/many/00912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005c"object-tests/many/00922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005d"object-tests/many/00932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005e"object-tests/many/00942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005f"object-tests/many/00952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610060"object-tests/many/00962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610061"object-tests/many/00972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610062"object-tests/many/00982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610063"object-tests/many/00992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610064"object-tests/many/01002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610065"object-tests/many/01012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610066"object-tests/many/01022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610067"object-tests/many/01032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610068"object-tests/many/01042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610069"object-tests/many/01052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006a"object-tests/many/01062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006b"object-tests/many/01072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006c"object-tests/many/01082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006d"object-tests/many/01092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006e"object-tests/many/01102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006f"object-tests/many/01112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610070"object-tests/many/01122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610071"object-tests/many/01132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610072"object-tests/many/01142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610073"object-tests/many/01152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610074"object-tests/many/01162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610075"object-tests/many/01172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610076"object-tests/many/01182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610077"object-tests/many/01192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610078"object-tests/many/01202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610079"object-tests/many/01212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007a"object-tests/many/01222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007b"object-tests/many/01232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007c"object-tests/many/01242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007d"object-tests/many/01252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007e"object-tests/many/01262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007f"object-tests/many/01272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610080"object-tests/many/01282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610081"object-tests/many/01292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610082"object-tests/many/01302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610083"object-tests/many/01312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610084"object-tests/many/01322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610085"object-tests/many/01332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610086"object-tests/many/01342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610087"object-tests/many/01352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610088"object-tests/many/01362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610089"object-tests/many/01372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008a"object-tests/many/01382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008b"object-tests/many/01392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008c"object-tests/many/01402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008d"object-tests/many/01412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008e"object-tests/many/01422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008f"object-tests/many/01432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610090"object-tests/many/01442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610091"object-tests/many/01452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610092"object-tests/many/01462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610093"object-tests/many/01472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610094"object-tests/many/01482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610095"object-tests/many/01492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610096"object-tests/many/01502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610097"object-tests/many/01512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610098"object-tests/many/01522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610099"object-tests/many/01532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009a"object-tests/many/01542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009b"object-tests/many/01552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009c"object-tests/many/01562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009d"object-tests/many/01572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009e"object-tests/many/01582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009f"object-tests/many/01592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a0"object-tests/many/01602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a1"object-tests/many/01612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a2"object-tests/many/01622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a3"object-tests/many/01632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a4"object-tests/many/01642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a5"object-tests/many/01652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a6"object-tests/many/01662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a7"object-tests/many/01672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a8"object-tests/many/01682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a9"object-tests/many/01692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100aa"object-tests/many/01702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ab"object-tests/many/01712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ac"object-tests/many/01722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ad"object-tests/many/01732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ae"object-tests/many/01742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100af"object-tests/many/01752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b0"object-tests/many/01762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b1"object-tests/many/01772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b2"object-tests/many/01782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b3"object-tests/many/01792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b4"object-tests/many/01802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b5"object-tests/many/01812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b6"object-tests/many/01822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b7"object-tests/many/01832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b8"object-tests/many/01842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b9"object-tests/many/01852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ba"object-tests/many/01862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bb"object-tests/many/01872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bc"object-tests/many/01882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bd"object-tests/many/01892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100be"object-tests/many/01902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bf"object-tests/many/01912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c0"object-tests/many/01922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c1"object-tests/many/01932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c2"object-tests/many/01942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c3"object-tests/many/01952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c4"object-tests/many/01962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c5"object-tests/many/01972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c6"object-tests/many/01982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c7"object-tests/many/01992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c8"object-tests/many/02002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c9"object-tests/many/02012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ca"object-tests/many/02022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cb"object-tests/many/02032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cc"object-tests/many/02042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cd"object-tests/many/02052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ce"object-tests/many/02062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cf"object-tests/many/02072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d0"object-tests/many/02082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d1"object-tests/many/02092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d2"object-tests/many/02102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d3"object-tests/many/02112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d4"object-tests/many/02122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d5"object-tests/many/02132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d6"object-tests/many/02142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d7"object-tests/many/02152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d8"object-tests/many/02162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d9"object-tests/many/02172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100da"object-tests/many/02182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100db"object-tests/many/02192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100dc"object-tests/many/02202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100dd"object-tests/many/02212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100de"object-tests/many/02222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100df"object-tests/many/02232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e0"object-tests/many/02242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e1"object-tests/many/02252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e2"object-tests/many/02262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e3"object-tests/many/02272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e4"object-tests/many/02282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e5"object-tests/many/02292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e6"object-tests/many/02302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e7"object-tests/many/02312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e8"object-tests/many/02322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e9"object-tests/many/02332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ea"object-tests/many/02342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100eb"object-tests/many/02352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ec"object-tests/many/02362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ed"object-tests/many/02372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ee"object-tests/many/02382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ef"object-tests/many/02392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f0"object-tests/many/02402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f1"object-tests/many/02412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f2"object-tests/many/02422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f3"object-tests/many/02432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f4"object-tests/many/02442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f5"object-tests/many/02452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f6"object-tests/many/02462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f7"object-tests/many/02472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f8"object-tests/many/02482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f9"object-tests/many/02492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fa"object-tests/many/02502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fb"object-tests/many/02512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fc"object-tests/many/02522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fd"object-tests/many/02532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fe"object-tests/many/02542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ff"object-tests/many/02552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610100"object-tests/many/02562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610101"object-tests/many/02572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610102"object-tests/many/02582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610103"object-tests/many/02592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610104"object-tests/many/02602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610105"object-tests/many/02612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610106"object-tests/many/02622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610107"object-tests/many/02632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610108"object-tests/many/02642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610109"object-tests/many/02652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010a"object-tests/many/02662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010b"object-tests/many/02672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010c"object-tests/many/02682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010d"object-tests/many/02692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010e"object-tests/many/02702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010f"object-tests/many/02712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610110"object-tests/many/02722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610111"object-tests/many/02732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610112"object-tests/many/02742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610113"object-tests/many/02752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610114"object-tests/many/02762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610115"object-tests/many/02772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610116"object-tests/many/02782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610117"object-tests/many/02792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610118"object-tests/many/02802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610119"object-tests/many/02812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011a"object-tests/many/02822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011b"object-tests/many/02832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011c"object-tests/many/02842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011d"object-tests/many/02852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011e"object-tests/many/02862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011f"object-tests/many/02872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610120"object-tests/many/02882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610121"object-tests/many/02892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610122"object-tests/many/02902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610123"object-tests/many/02912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610124"object-tests/many/02922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610125"object-tests/many/02932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610126"object-tests/many/02942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610127"object-tests/many/02952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610128"object-tests/many/02962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610129"object-tests/many/02972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012a"object-tests/many/02982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012b"object-tests/many/02992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012c"object-tests/many/03002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012d"object-tests/many/03012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012e"object-tests/many/03022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012f"object-tests/many/03032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610130"object-tests/many/03042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610131"object-tests/many/03052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610132"object-tests/many/03062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610133"object-tests/many/03072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610134"object-tests/many/03082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610135"object-tests/many/03092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610136"object-tests/many/03102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610137"object-tests/many/03112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610138"object-tests/many/03122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610139"object-tests/many/03132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013a"object-tests/many/03142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013b"object-tests/many/03152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013c"object-tests/many/03162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013d"object-tests/many/03172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013e"object-tests/many/03182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013f"object-tests/many/03192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610140"object-tests/many/03202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610141"object-tests/many/03212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610142"object-tests/many/03222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610143"object-tests/many/03232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610144"object-tests/many/03242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610145"object-tests/many/03252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610146"object-tests/many/03262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610147"object-tests/many/03272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610148"object-tests/many/03282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610149"object-tests/many/03292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014a"object-tests/many/03302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014b"object-tests/many/03312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014c"object-tests/many/03322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014d"object-tests/many/03332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014e"object-tests/many/03342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014f"object-tests/many/03352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610150"object-tests/many/03362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610151"object-tests/many/03372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610152"object-tests/many/03382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610153"object-tests/many/03392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610154"object-tests/many/03402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610155"object-tests/many/03412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610156"object-tests/many/03422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610157"object-tests/many/03432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610158"object-tests/many/03442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610159"object-tests/many/03452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015a"object-tests/many/03462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015b"object-tests/many/03472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015c"object-tests/many/03482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015d"object-tests/many/03492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015e"object-tests/many/03502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015f"object-tests/many/03512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610160"object-tests/many/03522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610161"object-tests/many/03532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610162"object-tests/many/03542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610163"object-tests/many/03552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610164"object-tests/many/03562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610165"object-tests/many/03572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610166"object-tests/many/03582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610167"object-tests/many/03592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610168"object-tests/many/03602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610169"object-tests/many/03612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016a"object-tests/many/03622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016b"object-tests/many/03632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016c"object-tests/many/03642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016d"object-tests/many/03652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016e"object-tests/many/03662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016f"object-tests/many/03672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610170"object-tests/many/03682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610171"object-tests/many/03692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610172"object-tests/many/03702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610173"object-tests/many/03712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610174"object-tests/many/03722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610175"object-tests/many/03732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610176"object-tests/many/03742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610177"object-tests/many/03752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610178"object-tests/many/03762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610179"object-tests/many/03772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017a"object-tests/many/03782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017b"object-tests/many/03792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017c"object-tests/many/03802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017d"object-tests/many/03812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017e"object-tests/many/03822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017f"object-tests/many/03832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610180"object-tests/many/03842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610181"object-tests/many/03852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610182"object-tests/many/03862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610183"object-tests/many/03872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610184"object-tests/many/03882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610185"object-tests/many/03892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610186"object-tests/many/03902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610187"object-tests/many/03912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610188"object-tests/many/03922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610189"object-tests/many/03932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018a"object-tests/many/03942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018b"object-tests/many/03952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018c"object-tests/many/03962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018d"object-tests/many/03972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018e"object-tests/many/03982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018f"object-tests/many/03992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610190"object-tests/many/04002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610191"object-tests/many/04012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610192"object-tests/many/04022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610193"object-tests/many/04032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610194"object-tests/many/04042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610195"object-tests/many/04052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610196"object-tests/many/04062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610197"object-tests/many/04072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610198"object-tests/many/04082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610199"object-tests/many/04092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019a"object-tests/many/04102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019b"object-tests/many/04112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019c"object-tests/many/04122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019d"object-tests/many/04132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019e"object-tests/many/04142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019f"object-tests/many/04152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a0"object-tests/many/04162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a1"object-tests/many/04172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a2"object-tests/many/04182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a3"object-tests/many/04192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a4"object-tests/many/04202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a5"object-tests/many/04212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a6"object-tests/many/04222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a7"object-tests/many/04232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a8"object-tests/many/04242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a9"object-tests/many/04252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101aa"object-tests/many/04262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ab"object-tests/many/04272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ac"object-tests/many/04282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ad"object-tests/many/04292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ae"object-tests/many/04302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101af"object-tests/many/04312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b0"object-tests/many/04322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b1"object-tests/many/04332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b2"object-tests/many/04342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b3"object-tests/many/04352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b4"object-tests/many/04362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b5"object-tests/many/04372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b6"object-tests/many/04382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b7"object-tests/many/04392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b8"object-tests/many/04402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b9"object-tests/many/04412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ba"object-tests/many/04422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bb"object-tests/many/04432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bc"object-tests/many/04442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bd"object-tests/many/04452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101be"object-tests/many/04462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bf"object-tests/many/04472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c0"object-tests/many/04482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c1"object-tests/many/04492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c2"object-tests/many/04502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c3"object-tests/many/04512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c4"object-tests/many/04522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c5"object-tests/many/04532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c6"object-tests/many/04542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c7"object-tests/many/04552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c8"object-tests/many/04562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c9"object-tests/many/04572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ca"object-tests/many/04582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cb"object-tests/many/04592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cc"object-tests/many/04602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cd"object-tests/many/04612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ce"object-tests/many/04622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cf"object-tests/many/04632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d0"object-tests/many/04642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d1"object-tests/many/04652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d2"object-tests/many/04662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d3"object-tests/many/04672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d4"object-tests/many/04682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d5"object-tests/many/04692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d6"object-tests/many/04702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d7"object-tests/many/04712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d8"object-tests/many/04722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d9"object-tests/many/04732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101da"object-tests/many/04742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101db"object-tests/many/04752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101dc"object-tests/many/04762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101dd"object-tests/many/04772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101de"object-tests/many/04782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101df"object-tests/many/04792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e0"object-tests/many/04802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e1"object-tests/many/04812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e2"object-tests/many/04822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e3"object-tests/many/04832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e4"object-tests/many/04842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e5"object-tests/many/04852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e6"object-tests/many/04862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e7"object-tests/many/04872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e8"object-tests/many/04882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e9"object-tests/many/04892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ea"object-tests/many/04902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101eb"object-tests/many/04912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ec"object-tests/many/04922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ed"object-tests/many/04932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ee"object-tests/many/04942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ef"object-tests/many/04952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f0"object-tests/many/04962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f1"object-tests/many/04972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f2"object-tests/many/04982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f3"object-tests/many/04992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f4"object-tests/many/05002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f5"object-tests/many/05012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f6"object-tests/many/05022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f7"object-tests/many/05032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f8"object-tests/many/05042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f9"object-tests/many/05052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fa"object-tests/many/05062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fb"object-tests/many/05072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fc"object-tests/many/05082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fd"object-tests/many/05092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fe"object-tests/many/05102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ff"object-tests/many/05112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610200"object-tests/many/05122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610201"object-tests/many/05132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610202"object-tests/many/05142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610203"object-tests/many/05152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610204"object-tests/many/05162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610205"object-tests/many/05172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610206"object-tests/many/05182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610207"object-tests/many/05192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610208"object-tests/many/05202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610209"object-tests/many/05212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020a"object-tests/many/05222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020b"object-tests/many/05232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020c"object-tests/many/05242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020d"object-tests/many/05252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020e"object-tests/many/05262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020f"object-tests/many/05272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610210"object-tests/many/05282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610211"object-tests/many/05292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610212"object-tests/many/05302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610213"object-tests/many/05312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610214"object-tests/many/05322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610215"object-tests/many/05332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610216"object-tests/many/05342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610217"object-tests/many/05352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610218"object-tests/many/05362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610219"object-tests/many/05372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021a"object-tests/many/05382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021b"object-tests/many/05392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021c"object-tests/many/05402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021d"object-tests/many/05412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021e"object-tests/many/05422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021f"object-tests/many/05432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610220"object-tests/many/05442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610221"object-tests/many/05452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610222"object-tests/many/05462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610223"object-tests/many/05472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610224"object-tests/many/05482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610225"object-tests/many/05492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610226"object-tests/many/05502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610227"object-tests/many/05512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610228"object-tests/many/05522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610229"object-tests/many/05532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022a"object-tests/many/05542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022b"object-tests/many/05552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022c"object-tests/many/05562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022d"object-tests/many/05572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022e"object-tests/many/05582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022f"object-tests/many/05592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610230"object-tests/many/05602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610231"object-tests/many/05612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610232"object-tests/many/05622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610233"object-tests/many/05632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610234"object-tests/many/05642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610235"object-tests/many/05652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610236"object-tests/many/05662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610237"object-tests/many/05672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610238"object-tests/many/05682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610239"object-tests/many/05692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023a"object-tests/many/05702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023b"object-tests/many/05712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023c"object-tests/many/05722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023d"object-tests/many/05732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023e"object-tests/many/05742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023f"object-tests/many/05752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610240"object-tests/many/05762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610241"object-tests/many/05772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610242"object-tests/many/05782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610243"object-tests/many/05792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610244"object-tests/many/05802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610245"object-tests/many/05812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610246"object-tests/many/05822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610247"object-tests/many/05832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610248"object-tests/many/05842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610249"object-tests/many/05852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024a"object-tests/many/05862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024b"object-tests/many/05872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024c"object-tests/many/05882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024d"object-tests/many/05892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024e"object-tests/many/05902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024f"object-tests/many/05912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610250"object-tests/many/05922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610251"object-tests/many/05932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610252"object-tests/many/05942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610253"object-tests/many/05952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610254"object-tests/many/05962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610255"object-tests/many/05972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610256"object-tests/many/05982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610257"object-tests/many/05992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610258"object-tests/many/06002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610259"object-tests/many/06012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025a"object-tests/many/06022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025b"object-tests/many/06032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025c"object-tests/many/06042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025d"object-tests/many/06052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025e"object-tests/many/06062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025f"object-tests/many/06072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610260"object-tests/many/06082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610261"object-tests/many/06092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610262"object-tests/many/06102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610263"object-tests/many/06112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610264"object-tests/many/06122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610265"object-tests/many/06132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610266"object-tests/many/06142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610267"object-tests/many/06152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610268"object-tests/many/06162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610269"object-tests/many/06172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026a"object-tests/many/06182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026b"object-tests/many/06192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026c"object-tests/many/06202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026d"object-tests/many/06212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026e"object-tests/many/06222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026f"object-tests/many/06232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610270"object-tests/many/06242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610271"object-tests/many/06252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610272"object-tests/many/06262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610273"object-tests/many/06272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610274"object-tests/many/06282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610275"object-tests/many/06292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610276"object-tests/many/06302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610277"object-tests/many/06312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610278"object-tests/many/06322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610279"object-tests/many/06332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027a"object-tests/many/06342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027b"object-tests/many/06352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027c"object-tests/many/06362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027d"object-tests/many/06372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027e"object-tests/many/06382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027f"object-tests/many/06392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610280"object-tests/many/06402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610281"object-tests/many/06412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610282"object-tests/many/06422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610283"object-tests/many/06432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610284"object-tests/many/06442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610285"object-tests/many/06452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610286"object-tests/many/06462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610287"object-tests/many/06472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610288"object-tests/many/06482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610289"object-tests/many/06492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028a"object-tests/many/06502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028b"object-tests/many/06512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028c"object-tests/many/06522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028d"object-tests/many/06532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028e"object-tests/many/06542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028f"object-tests/many/06552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610290"object-tests/many/06562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610291"object-tests/many/06572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610292"object-tests/many/06582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610293"object-tests/many/06592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610294"object-tests/many/06602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610295"object-tests/many/06612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610296"object-tests/many/06622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610297"object-tests/many/06632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610298"object-tests/many/06642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610299"object-tests/many/06652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029a"object-tests/many/06662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029b"object-tests/many/06672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029c"object-tests/many/06682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029d"object-tests/many/06692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029e"object-tests/many/06702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029f"object-tests/many/06712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a0"object-tests/many/06722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a1"object-tests/many/06732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a2"object-tests/many/06742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a3"object-tests/many/06752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a4"object-tests/many/06762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a5"object-tests/many/06772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a6"object-tests/many/06782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a7"object-tests/many/06792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a8"object-tests/many/06802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a9"object-tests/many/06812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102aa"object-tests/many/06822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ab"object-tests/many/06832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ac"object-tests/many/06842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ad"object-tests/many/06852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ae"object-tests/many/06862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102af"object-tests/many/06872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b0"object-tests/many/06882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b1"object-tests/many/06892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b2"object-tests/many/06902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b3"object-tests/many/06912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b4"object-tests/many/06922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b5"object-tests/many/06932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b6"object-tests/many/06942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b7"object-tests/many/06952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b8"object-tests/many/06962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b9"object-tests/many/06972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ba"object-tests/many/06982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bb"object-tests/many/06992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bc"object-tests/many/07002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bd"object-tests/many/07012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102be"object-tests/many/07022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bf"object-tests/many/07032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c0"object-tests/many/07042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c1"object-tests/many/07052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c2"object-tests/many/07062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c3"object-tests/many/07072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c4"object-tests/many/07082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c5"object-tests/many/07092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c6"object-tests/many/07102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c7"object-tests/many/07112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c8"object-tests/many/07122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c9"object-tests/many/07132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ca"object-tests/many/07142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cb"object-tests/many/07152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cc"object-tests/many/07162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cd"object-tests/many/07172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ce"object-tests/many/07182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cf"object-tests/many/07192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d0"object-tests/many/07202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d1"object-tests/many/07212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d2"object-tests/many/07222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d3"object-tests/many/07232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d4"object-tests/many/07242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d5"object-tests/many/07252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d6"object-tests/many/07262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d7"object-tests/many/07272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d8"object-tests/many/07282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d9"object-tests/many/07292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102da"object-tests/many/07302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102db"object-tests/many/07312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102dc"object-tests/many/07322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102dd"object-tests/many/07332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102de"object-tests/many/07342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102df"object-tests/many/07352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e0"object-tests/many/07362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e1"object-tests/many/07372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e2"object-tests/many/07382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e3"object-tests/many/07392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e4"object-tests/many/07402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e5"object-tests/many/07412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e6"object-tests/many/07422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e7"object-tests/many/07432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e8"object-tests/many/07442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e9"object-tests/many/07452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ea"object-tests/many/07462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102eb"object-tests/many/07472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ec"object-tests/many/07482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ed"object-tests/many/07492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ee"object-tests/many/07502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ef"object-tests/many/07512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f0"object-tests/many/07522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f1"object-tests/many/07532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f2"object-tests/many/07542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f3"object-tests/many/07552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f4"object-tests/many/07562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f5"object-tests/many/07572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f6"object-tests/many/07582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f7"object-tests/many/07592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f8"object-tests/many/07602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f9"object-tests/many/07612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fa"object-tests/many/07622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fb"object-tests/many/07632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fc"object-tests/many/07642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fd"object-tests/many/07652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fe"object-tests/many/07662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ff"object-tests/many/07672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610300"object-tests/many/07682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610301"object-tests/many/07692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610302"object-tests/many/07702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610303"object-tests/many/07712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610304"object-tests/many/07722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610305"object-tests/many/07732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610306"object-tests/many/07742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610307"object-tests/many/07752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610308"object-tests/many/07762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610309"object-tests/many/07772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030a"object-tests/many/07782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030b"object-tests/many/07792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030c"object-tests/many/07802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030d"object-tests/many/07812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030e"object-tests/many/07822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030f"object-tests/many/07832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610310"object-tests/many/07842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610311"object-tests/many/07852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610312"object-tests/many/07862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610313"object-tests/many/07872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610314"object-tests/many/07882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610315"object-tests/many/07892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610316"object-tests/many/07902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610317"object-tests/many/07912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610318"object-tests/many/07922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610319"object-tests/many/07932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031a"object-tests/many/07942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031b"object-tests/many/07952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031c"object-tests/many/07962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031d"object-tests/many/07972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031e"object-tests/many/07982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031f"object-tests/many/07992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610320"object-tests/many/08002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610321"object-tests/many/08012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610322"object-tests/many/08022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610323"object-tests/many/08032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610324"object-tests/many/08042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610325"object-tests/many/08052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610326"object-tests/many/08062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610327"object-tests/many/08072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610328"object-tests/many/08082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610329"object-tests/many/08092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032a"object-tests/many/08102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032b"object-tests/many/08112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032c"object-tests/many/08122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032d"object-tests/many/08132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032e"object-tests/many/08142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032f"object-tests/many/08152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610330"object-tests/many/08162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610331"object-tests/many/08172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610332"object-tests/many/08182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610333"object-tests/many/08192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610334"object-tests/many/08202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610335"object-tests/many/08212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610336"object-tests/many/08222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610337"object-tests/many/08232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610338"object-tests/many/08242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610339"object-tests/many/08252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033a"object-tests/many/08262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033b"object-tests/many/08272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033c"object-tests/many/08282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033d"object-tests/many/08292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033e"object-tests/many/08302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033f"object-tests/many/08312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610340"object-tests/many/08322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610341"object-tests/many/08332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610342"object-tests/many/08342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610343"object-tests/many/08352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610344"object-tests/many/08362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610345"object-tests/many/08372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610346"object-tests/many/08382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610347"object-tests/many/08392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610348"object-tests/many/08402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610349"object-tests/many/08412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034a"object-tests/many/08422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034b"object-tests/many/08432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034c"object-tests/many/08442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034d"object-tests/many/08452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034e"object-tests/many/08462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034f"object-tests/many/08472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610350"object-tests/many/08482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610351"object-tests/many/08492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610352"object-tests/many/08502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610353"object-tests/many/08512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610354"object-tests/many/08522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610355"object-tests/many/08532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610356"object-tests/many/08542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610357"object-tests/many/08552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610358"object-tests/many/08562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610359"object-tests/many/08572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035a"object-tests/many/08582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035b"object-tests/many/08592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035c"object-tests/many/08602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035d"object-tests/many/08612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035e"object-tests/many/08622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035f"object-tests/many/08632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610360"object-tests/many/08642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610361"object-tests/many/08652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610362"object-tests/many/08662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610363"object-tests/many/08672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610364"object-tests/many/08682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610365"object-tests/many/08692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610366"object-tests/many/08702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610367"object-tests/many/08712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610368"object-tests/many/08722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610369"object-tests/many/08732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036a"object-tests/many/08742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036b"object-tests/many/08752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036c"object-tests/many/08762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036d"object-tests/many/08772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036e"object-tests/many/08782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036f"object-tests/many/08792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610370"object-tests/many/08802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610371"object-tests/many/08812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610372"object-tests/many/08822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610373"object-tests/many/08832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610374"object-tests/many/08842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610375"object-tests/many/08852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610376"object-tests/many/08862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610377"object-tests/many/08872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610378"object-tests/many/08882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610379"object-tests/many/08892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037a"object-tests/many/08902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037b"object-tests/many/08912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037c"object-tests/many/08922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037d"object-tests/many/08932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037e"object-tests/many/08942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037f"object-tests/many/08952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610380"object-tests/many/08962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610381"object-tests/many/08972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610382"object-tests/many/08982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610383"object-tests/many/08992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610384"object-tests/many/09002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610385"object-tests/many/09012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610386"object-tests/many/09022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610387"object-tests/many/09032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610388"object-tests/many/09042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610389"object-tests/many/09052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038a"object-tests/many/09062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038b"object-tests/many/09072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038c"object-tests/many/09082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038d"object-tests/many/09092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038e"object-tests/many/09102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038f"object-tests/many/09112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610390"object-tests/many/09122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610391"object-tests/many/09132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610392"object-tests/many/09142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610393"object-tests/many/09152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610394"object-tests/many/09162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610395"object-tests/many/09172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610396"object-tests/many/09182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610397"object-tests/many/09192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610398"object-tests/many/09202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610399"object-tests/many/09212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039a"object-tests/many/09222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039b"object-tests/many/09232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039c"object-tests/many/09242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039d"object-tests/many/09252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039e"object-tests/many/09262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039f"object-tests/many/09272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a0"object-tests/many/09282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a1"object-tests/many/09292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a2"object-tests/many/09302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a3"object-tests/many/09312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a4"object-tests/many/09322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a5"object-tests/many/09332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a6"object-tests/many/09342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a7"object-tests/many/09352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a8"object-tests/many/09362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a9"object-tests/many/09372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103aa"object-tests/many/09382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ab"object-tests/many/09392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ac"object-tests/many/09402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ad"object-tests/many/09412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ae"object-tests/many/09422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103af"object-tests/many/09432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b0"object-tests/many/09442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b1"object-tests/many/09452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b2"object-tests/many/09462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b3"object-tests/many/09472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b4"object-tests/many/09482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b5"object-tests/many/09492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b6"object-tests/many/09502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b7"object-tests/many/09512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b8"object-tests/many/09522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b9"object-tests/many/09532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ba"object-tests/many/09542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bb"object-tests/many/09552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bc"object-tests/many/09562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bd"object-tests/many/09572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103be"object-tests/many/09582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bf"object-tests/many/09592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c0"object-tests/many/09602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c1"object-tests/many/09612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c2"object-tests/many/09622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c3"object-tests/many/09632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c4"object-tests/many/09642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c5"object-tests/many/09652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c6"object-tests/many/09662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c7"object-tests/many/09672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c8"object-tests/many/09682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c9"object-tests/many/09692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ca"object-tests/many/09702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cb"object-tests/many/09712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cc"object-tests/many/09722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cd"object-tests/many/09732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ce"object-tests/many/09742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cf"object-tests/many/09752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d0"object-tests/many/09762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d1"object-tests/many/09772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d2"object-tests/many/09782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d3"object-tests/many/09792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d4"object-tests/many/09802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d5"object-tests/many/09812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d6"object-tests/many/09822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d7"object-tests/many/09832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d8"object-tests/many/09842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d9"object-tests/many/09852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103da"object-tests/many/09862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103db"object-tests/many/09872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103dc"object-tests/many/09882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103dd"object-tests/many/09892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103de"object-tests/many/09902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103df"object-tests/many/09912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e0"object-tests/many/09922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e1"object-tests/many/09932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e2"object-tests/many/09942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e3"object-tests/many/09952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e4"object-tests/many/09962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e5"object-tests/many/09972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e6"object-tests/many/09982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e7"object-tests/many/09992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ }
}
}
- ],
- "optional": true
+ ]
},
{
"alternatives": [
@@ -146172,15 +188326,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "object-tests/many/"
}
},
{
- "at": "/query/max-keys",
+ "at": "/query/continuation-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture-marker+/3a4e1000="
}
},
{
@@ -146213,18 +188367,18 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000falseCRC64NVME"fixture-6d6103e8"object-tests/many/10002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ }
}
},
{
@@ -146266,15 +188420,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "object-tests/many/"
}
},
{
- "at": "/query/max-keys",
+ "at": "/query/continuation-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture-marker+/3a4e1000="
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
},
{
@@ -146300,14 +188462,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
- }
}
],
"allow_headers": [
@@ -146315,23 +188469,1059 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000urlfalseCRC64NVME"fixture-6d6103e8"object-tests/many/10002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ }
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
},
+ {
+ "at": "/value/keys",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": [
+ "object-tests/many/0000",
+ "object-tests/many/0001",
+ "object-tests/many/0002",
+ "object-tests/many/0003",
+ "object-tests/many/0004",
+ "object-tests/many/0005",
+ "object-tests/many/0006",
+ "object-tests/many/0007",
+ "object-tests/many/0008",
+ "object-tests/many/0009",
+ "object-tests/many/0010",
+ "object-tests/many/0011",
+ "object-tests/many/0012",
+ "object-tests/many/0013",
+ "object-tests/many/0014",
+ "object-tests/many/0015",
+ "object-tests/many/0016",
+ "object-tests/many/0017",
+ "object-tests/many/0018",
+ "object-tests/many/0019",
+ "object-tests/many/0020",
+ "object-tests/many/0021",
+ "object-tests/many/0022",
+ "object-tests/many/0023",
+ "object-tests/many/0024",
+ "object-tests/many/0025",
+ "object-tests/many/0026",
+ "object-tests/many/0027",
+ "object-tests/many/0028",
+ "object-tests/many/0029",
+ "object-tests/many/0030",
+ "object-tests/many/0031",
+ "object-tests/many/0032",
+ "object-tests/many/0033",
+ "object-tests/many/0034",
+ "object-tests/many/0035",
+ "object-tests/many/0036",
+ "object-tests/many/0037",
+ "object-tests/many/0038",
+ "object-tests/many/0039",
+ "object-tests/many/0040",
+ "object-tests/many/0041",
+ "object-tests/many/0042",
+ "object-tests/many/0043",
+ "object-tests/many/0044",
+ "object-tests/many/0045",
+ "object-tests/many/0046",
+ "object-tests/many/0047",
+ "object-tests/many/0048",
+ "object-tests/many/0049",
+ "object-tests/many/0050",
+ "object-tests/many/0051",
+ "object-tests/many/0052",
+ "object-tests/many/0053",
+ "object-tests/many/0054",
+ "object-tests/many/0055",
+ "object-tests/many/0056",
+ "object-tests/many/0057",
+ "object-tests/many/0058",
+ "object-tests/many/0059",
+ "object-tests/many/0060",
+ "object-tests/many/0061",
+ "object-tests/many/0062",
+ "object-tests/many/0063",
+ "object-tests/many/0064",
+ "object-tests/many/0065",
+ "object-tests/many/0066",
+ "object-tests/many/0067",
+ "object-tests/many/0068",
+ "object-tests/many/0069",
+ "object-tests/many/0070",
+ "object-tests/many/0071",
+ "object-tests/many/0072",
+ "object-tests/many/0073",
+ "object-tests/many/0074",
+ "object-tests/many/0075",
+ "object-tests/many/0076",
+ "object-tests/many/0077",
+ "object-tests/many/0078",
+ "object-tests/many/0079",
+ "object-tests/many/0080",
+ "object-tests/many/0081",
+ "object-tests/many/0082",
+ "object-tests/many/0083",
+ "object-tests/many/0084",
+ "object-tests/many/0085",
+ "object-tests/many/0086",
+ "object-tests/many/0087",
+ "object-tests/many/0088",
+ "object-tests/many/0089",
+ "object-tests/many/0090",
+ "object-tests/many/0091",
+ "object-tests/many/0092",
+ "object-tests/many/0093",
+ "object-tests/many/0094",
+ "object-tests/many/0095",
+ "object-tests/many/0096",
+ "object-tests/many/0097",
+ "object-tests/many/0098",
+ "object-tests/many/0099",
+ "object-tests/many/0100",
+ "object-tests/many/0101",
+ "object-tests/many/0102",
+ "object-tests/many/0103",
+ "object-tests/many/0104",
+ "object-tests/many/0105",
+ "object-tests/many/0106",
+ "object-tests/many/0107",
+ "object-tests/many/0108",
+ "object-tests/many/0109",
+ "object-tests/many/0110",
+ "object-tests/many/0111",
+ "object-tests/many/0112",
+ "object-tests/many/0113",
+ "object-tests/many/0114",
+ "object-tests/many/0115",
+ "object-tests/many/0116",
+ "object-tests/many/0117",
+ "object-tests/many/0118",
+ "object-tests/many/0119",
+ "object-tests/many/0120",
+ "object-tests/many/0121",
+ "object-tests/many/0122",
+ "object-tests/many/0123",
+ "object-tests/many/0124",
+ "object-tests/many/0125",
+ "object-tests/many/0126",
+ "object-tests/many/0127",
+ "object-tests/many/0128",
+ "object-tests/many/0129",
+ "object-tests/many/0130",
+ "object-tests/many/0131",
+ "object-tests/many/0132",
+ "object-tests/many/0133",
+ "object-tests/many/0134",
+ "object-tests/many/0135",
+ "object-tests/many/0136",
+ "object-tests/many/0137",
+ "object-tests/many/0138",
+ "object-tests/many/0139",
+ "object-tests/many/0140",
+ "object-tests/many/0141",
+ "object-tests/many/0142",
+ "object-tests/many/0143",
+ "object-tests/many/0144",
+ "object-tests/many/0145",
+ "object-tests/many/0146",
+ "object-tests/many/0147",
+ "object-tests/many/0148",
+ "object-tests/many/0149",
+ "object-tests/many/0150",
+ "object-tests/many/0151",
+ "object-tests/many/0152",
+ "object-tests/many/0153",
+ "object-tests/many/0154",
+ "object-tests/many/0155",
+ "object-tests/many/0156",
+ "object-tests/many/0157",
+ "object-tests/many/0158",
+ "object-tests/many/0159",
+ "object-tests/many/0160",
+ "object-tests/many/0161",
+ "object-tests/many/0162",
+ "object-tests/many/0163",
+ "object-tests/many/0164",
+ "object-tests/many/0165",
+ "object-tests/many/0166",
+ "object-tests/many/0167",
+ "object-tests/many/0168",
+ "object-tests/many/0169",
+ "object-tests/many/0170",
+ "object-tests/many/0171",
+ "object-tests/many/0172",
+ "object-tests/many/0173",
+ "object-tests/many/0174",
+ "object-tests/many/0175",
+ "object-tests/many/0176",
+ "object-tests/many/0177",
+ "object-tests/many/0178",
+ "object-tests/many/0179",
+ "object-tests/many/0180",
+ "object-tests/many/0181",
+ "object-tests/many/0182",
+ "object-tests/many/0183",
+ "object-tests/many/0184",
+ "object-tests/many/0185",
+ "object-tests/many/0186",
+ "object-tests/many/0187",
+ "object-tests/many/0188",
+ "object-tests/many/0189",
+ "object-tests/many/0190",
+ "object-tests/many/0191",
+ "object-tests/many/0192",
+ "object-tests/many/0193",
+ "object-tests/many/0194",
+ "object-tests/many/0195",
+ "object-tests/many/0196",
+ "object-tests/many/0197",
+ "object-tests/many/0198",
+ "object-tests/many/0199",
+ "object-tests/many/0200",
+ "object-tests/many/0201",
+ "object-tests/many/0202",
+ "object-tests/many/0203",
+ "object-tests/many/0204",
+ "object-tests/many/0205",
+ "object-tests/many/0206",
+ "object-tests/many/0207",
+ "object-tests/many/0208",
+ "object-tests/many/0209",
+ "object-tests/many/0210",
+ "object-tests/many/0211",
+ "object-tests/many/0212",
+ "object-tests/many/0213",
+ "object-tests/many/0214",
+ "object-tests/many/0215",
+ "object-tests/many/0216",
+ "object-tests/many/0217",
+ "object-tests/many/0218",
+ "object-tests/many/0219",
+ "object-tests/many/0220",
+ "object-tests/many/0221",
+ "object-tests/many/0222",
+ "object-tests/many/0223",
+ "object-tests/many/0224",
+ "object-tests/many/0225",
+ "object-tests/many/0226",
+ "object-tests/many/0227",
+ "object-tests/many/0228",
+ "object-tests/many/0229",
+ "object-tests/many/0230",
+ "object-tests/many/0231",
+ "object-tests/many/0232",
+ "object-tests/many/0233",
+ "object-tests/many/0234",
+ "object-tests/many/0235",
+ "object-tests/many/0236",
+ "object-tests/many/0237",
+ "object-tests/many/0238",
+ "object-tests/many/0239",
+ "object-tests/many/0240",
+ "object-tests/many/0241",
+ "object-tests/many/0242",
+ "object-tests/many/0243",
+ "object-tests/many/0244",
+ "object-tests/many/0245",
+ "object-tests/many/0246",
+ "object-tests/many/0247",
+ "object-tests/many/0248",
+ "object-tests/many/0249",
+ "object-tests/many/0250",
+ "object-tests/many/0251",
+ "object-tests/many/0252",
+ "object-tests/many/0253",
+ "object-tests/many/0254",
+ "object-tests/many/0255",
+ "object-tests/many/0256",
+ "object-tests/many/0257",
+ "object-tests/many/0258",
+ "object-tests/many/0259",
+ "object-tests/many/0260",
+ "object-tests/many/0261",
+ "object-tests/many/0262",
+ "object-tests/many/0263",
+ "object-tests/many/0264",
+ "object-tests/many/0265",
+ "object-tests/many/0266",
+ "object-tests/many/0267",
+ "object-tests/many/0268",
+ "object-tests/many/0269",
+ "object-tests/many/0270",
+ "object-tests/many/0271",
+ "object-tests/many/0272",
+ "object-tests/many/0273",
+ "object-tests/many/0274",
+ "object-tests/many/0275",
+ "object-tests/many/0276",
+ "object-tests/many/0277",
+ "object-tests/many/0278",
+ "object-tests/many/0279",
+ "object-tests/many/0280",
+ "object-tests/many/0281",
+ "object-tests/many/0282",
+ "object-tests/many/0283",
+ "object-tests/many/0284",
+ "object-tests/many/0285",
+ "object-tests/many/0286",
+ "object-tests/many/0287",
+ "object-tests/many/0288",
+ "object-tests/many/0289",
+ "object-tests/many/0290",
+ "object-tests/many/0291",
+ "object-tests/many/0292",
+ "object-tests/many/0293",
+ "object-tests/many/0294",
+ "object-tests/many/0295",
+ "object-tests/many/0296",
+ "object-tests/many/0297",
+ "object-tests/many/0298",
+ "object-tests/many/0299",
+ "object-tests/many/0300",
+ "object-tests/many/0301",
+ "object-tests/many/0302",
+ "object-tests/many/0303",
+ "object-tests/many/0304",
+ "object-tests/many/0305",
+ "object-tests/many/0306",
+ "object-tests/many/0307",
+ "object-tests/many/0308",
+ "object-tests/many/0309",
+ "object-tests/many/0310",
+ "object-tests/many/0311",
+ "object-tests/many/0312",
+ "object-tests/many/0313",
+ "object-tests/many/0314",
+ "object-tests/many/0315",
+ "object-tests/many/0316",
+ "object-tests/many/0317",
+ "object-tests/many/0318",
+ "object-tests/many/0319",
+ "object-tests/many/0320",
+ "object-tests/many/0321",
+ "object-tests/many/0322",
+ "object-tests/many/0323",
+ "object-tests/many/0324",
+ "object-tests/many/0325",
+ "object-tests/many/0326",
+ "object-tests/many/0327",
+ "object-tests/many/0328",
+ "object-tests/many/0329",
+ "object-tests/many/0330",
+ "object-tests/many/0331",
+ "object-tests/many/0332",
+ "object-tests/many/0333",
+ "object-tests/many/0334",
+ "object-tests/many/0335",
+ "object-tests/many/0336",
+ "object-tests/many/0337",
+ "object-tests/many/0338",
+ "object-tests/many/0339",
+ "object-tests/many/0340",
+ "object-tests/many/0341",
+ "object-tests/many/0342",
+ "object-tests/many/0343",
+ "object-tests/many/0344",
+ "object-tests/many/0345",
+ "object-tests/many/0346",
+ "object-tests/many/0347",
+ "object-tests/many/0348",
+ "object-tests/many/0349",
+ "object-tests/many/0350",
+ "object-tests/many/0351",
+ "object-tests/many/0352",
+ "object-tests/many/0353",
+ "object-tests/many/0354",
+ "object-tests/many/0355",
+ "object-tests/many/0356",
+ "object-tests/many/0357",
+ "object-tests/many/0358",
+ "object-tests/many/0359",
+ "object-tests/many/0360",
+ "object-tests/many/0361",
+ "object-tests/many/0362",
+ "object-tests/many/0363",
+ "object-tests/many/0364",
+ "object-tests/many/0365",
+ "object-tests/many/0366",
+ "object-tests/many/0367",
+ "object-tests/many/0368",
+ "object-tests/many/0369",
+ "object-tests/many/0370",
+ "object-tests/many/0371",
+ "object-tests/many/0372",
+ "object-tests/many/0373",
+ "object-tests/many/0374",
+ "object-tests/many/0375",
+ "object-tests/many/0376",
+ "object-tests/many/0377",
+ "object-tests/many/0378",
+ "object-tests/many/0379",
+ "object-tests/many/0380",
+ "object-tests/many/0381",
+ "object-tests/many/0382",
+ "object-tests/many/0383",
+ "object-tests/many/0384",
+ "object-tests/many/0385",
+ "object-tests/many/0386",
+ "object-tests/many/0387",
+ "object-tests/many/0388",
+ "object-tests/many/0389",
+ "object-tests/many/0390",
+ "object-tests/many/0391",
+ "object-tests/many/0392",
+ "object-tests/many/0393",
+ "object-tests/many/0394",
+ "object-tests/many/0395",
+ "object-tests/many/0396",
+ "object-tests/many/0397",
+ "object-tests/many/0398",
+ "object-tests/many/0399",
+ "object-tests/many/0400",
+ "object-tests/many/0401",
+ "object-tests/many/0402",
+ "object-tests/many/0403",
+ "object-tests/many/0404",
+ "object-tests/many/0405",
+ "object-tests/many/0406",
+ "object-tests/many/0407",
+ "object-tests/many/0408",
+ "object-tests/many/0409",
+ "object-tests/many/0410",
+ "object-tests/many/0411",
+ "object-tests/many/0412",
+ "object-tests/many/0413",
+ "object-tests/many/0414",
+ "object-tests/many/0415",
+ "object-tests/many/0416",
+ "object-tests/many/0417",
+ "object-tests/many/0418",
+ "object-tests/many/0419",
+ "object-tests/many/0420",
+ "object-tests/many/0421",
+ "object-tests/many/0422",
+ "object-tests/many/0423",
+ "object-tests/many/0424",
+ "object-tests/many/0425",
+ "object-tests/many/0426",
+ "object-tests/many/0427",
+ "object-tests/many/0428",
+ "object-tests/many/0429",
+ "object-tests/many/0430",
+ "object-tests/many/0431",
+ "object-tests/many/0432",
+ "object-tests/many/0433",
+ "object-tests/many/0434",
+ "object-tests/many/0435",
+ "object-tests/many/0436",
+ "object-tests/many/0437",
+ "object-tests/many/0438",
+ "object-tests/many/0439",
+ "object-tests/many/0440",
+ "object-tests/many/0441",
+ "object-tests/many/0442",
+ "object-tests/many/0443",
+ "object-tests/many/0444",
+ "object-tests/many/0445",
+ "object-tests/many/0446",
+ "object-tests/many/0447",
+ "object-tests/many/0448",
+ "object-tests/many/0449",
+ "object-tests/many/0450",
+ "object-tests/many/0451",
+ "object-tests/many/0452",
+ "object-tests/many/0453",
+ "object-tests/many/0454",
+ "object-tests/many/0455",
+ "object-tests/many/0456",
+ "object-tests/many/0457",
+ "object-tests/many/0458",
+ "object-tests/many/0459",
+ "object-tests/many/0460",
+ "object-tests/many/0461",
+ "object-tests/many/0462",
+ "object-tests/many/0463",
+ "object-tests/many/0464",
+ "object-tests/many/0465",
+ "object-tests/many/0466",
+ "object-tests/many/0467",
+ "object-tests/many/0468",
+ "object-tests/many/0469",
+ "object-tests/many/0470",
+ "object-tests/many/0471",
+ "object-tests/many/0472",
+ "object-tests/many/0473",
+ "object-tests/many/0474",
+ "object-tests/many/0475",
+ "object-tests/many/0476",
+ "object-tests/many/0477",
+ "object-tests/many/0478",
+ "object-tests/many/0479",
+ "object-tests/many/0480",
+ "object-tests/many/0481",
+ "object-tests/many/0482",
+ "object-tests/many/0483",
+ "object-tests/many/0484",
+ "object-tests/many/0485",
+ "object-tests/many/0486",
+ "object-tests/many/0487",
+ "object-tests/many/0488",
+ "object-tests/many/0489",
+ "object-tests/many/0490",
+ "object-tests/many/0491",
+ "object-tests/many/0492",
+ "object-tests/many/0493",
+ "object-tests/many/0494",
+ "object-tests/many/0495",
+ "object-tests/many/0496",
+ "object-tests/many/0497",
+ "object-tests/many/0498",
+ "object-tests/many/0499",
+ "object-tests/many/0500",
+ "object-tests/many/0501",
+ "object-tests/many/0502",
+ "object-tests/many/0503",
+ "object-tests/many/0504",
+ "object-tests/many/0505",
+ "object-tests/many/0506",
+ "object-tests/many/0507",
+ "object-tests/many/0508",
+ "object-tests/many/0509",
+ "object-tests/many/0510",
+ "object-tests/many/0511",
+ "object-tests/many/0512",
+ "object-tests/many/0513",
+ "object-tests/many/0514",
+ "object-tests/many/0515",
+ "object-tests/many/0516",
+ "object-tests/many/0517",
+ "object-tests/many/0518",
+ "object-tests/many/0519",
+ "object-tests/many/0520",
+ "object-tests/many/0521",
+ "object-tests/many/0522",
+ "object-tests/many/0523",
+ "object-tests/many/0524",
+ "object-tests/many/0525",
+ "object-tests/many/0526",
+ "object-tests/many/0527",
+ "object-tests/many/0528",
+ "object-tests/many/0529",
+ "object-tests/many/0530",
+ "object-tests/many/0531",
+ "object-tests/many/0532",
+ "object-tests/many/0533",
+ "object-tests/many/0534",
+ "object-tests/many/0535",
+ "object-tests/many/0536",
+ "object-tests/many/0537",
+ "object-tests/many/0538",
+ "object-tests/many/0539",
+ "object-tests/many/0540",
+ "object-tests/many/0541",
+ "object-tests/many/0542",
+ "object-tests/many/0543",
+ "object-tests/many/0544",
+ "object-tests/many/0545",
+ "object-tests/many/0546",
+ "object-tests/many/0547",
+ "object-tests/many/0548",
+ "object-tests/many/0549",
+ "object-tests/many/0550",
+ "object-tests/many/0551",
+ "object-tests/many/0552",
+ "object-tests/many/0553",
+ "object-tests/many/0554",
+ "object-tests/many/0555",
+ "object-tests/many/0556",
+ "object-tests/many/0557",
+ "object-tests/many/0558",
+ "object-tests/many/0559",
+ "object-tests/many/0560",
+ "object-tests/many/0561",
+ "object-tests/many/0562",
+ "object-tests/many/0563",
+ "object-tests/many/0564",
+ "object-tests/many/0565",
+ "object-tests/many/0566",
+ "object-tests/many/0567",
+ "object-tests/many/0568",
+ "object-tests/many/0569",
+ "object-tests/many/0570",
+ "object-tests/many/0571",
+ "object-tests/many/0572",
+ "object-tests/many/0573",
+ "object-tests/many/0574",
+ "object-tests/many/0575",
+ "object-tests/many/0576",
+ "object-tests/many/0577",
+ "object-tests/many/0578",
+ "object-tests/many/0579",
+ "object-tests/many/0580",
+ "object-tests/many/0581",
+ "object-tests/many/0582",
+ "object-tests/many/0583",
+ "object-tests/many/0584",
+ "object-tests/many/0585",
+ "object-tests/many/0586",
+ "object-tests/many/0587",
+ "object-tests/many/0588",
+ "object-tests/many/0589",
+ "object-tests/many/0590",
+ "object-tests/many/0591",
+ "object-tests/many/0592",
+ "object-tests/many/0593",
+ "object-tests/many/0594",
+ "object-tests/many/0595",
+ "object-tests/many/0596",
+ "object-tests/many/0597",
+ "object-tests/many/0598",
+ "object-tests/many/0599",
+ "object-tests/many/0600",
+ "object-tests/many/0601",
+ "object-tests/many/0602",
+ "object-tests/many/0603",
+ "object-tests/many/0604",
+ "object-tests/many/0605",
+ "object-tests/many/0606",
+ "object-tests/many/0607",
+ "object-tests/many/0608",
+ "object-tests/many/0609",
+ "object-tests/many/0610",
+ "object-tests/many/0611",
+ "object-tests/many/0612",
+ "object-tests/many/0613",
+ "object-tests/many/0614",
+ "object-tests/many/0615",
+ "object-tests/many/0616",
+ "object-tests/many/0617",
+ "object-tests/many/0618",
+ "object-tests/many/0619",
+ "object-tests/many/0620",
+ "object-tests/many/0621",
+ "object-tests/many/0622",
+ "object-tests/many/0623",
+ "object-tests/many/0624",
+ "object-tests/many/0625",
+ "object-tests/many/0626",
+ "object-tests/many/0627",
+ "object-tests/many/0628",
+ "object-tests/many/0629",
+ "object-tests/many/0630",
+ "object-tests/many/0631",
+ "object-tests/many/0632",
+ "object-tests/many/0633",
+ "object-tests/many/0634",
+ "object-tests/many/0635",
+ "object-tests/many/0636",
+ "object-tests/many/0637",
+ "object-tests/many/0638",
+ "object-tests/many/0639",
+ "object-tests/many/0640",
+ "object-tests/many/0641",
+ "object-tests/many/0642",
+ "object-tests/many/0643",
+ "object-tests/many/0644",
+ "object-tests/many/0645",
+ "object-tests/many/0646",
+ "object-tests/many/0647",
+ "object-tests/many/0648",
+ "object-tests/many/0649",
+ "object-tests/many/0650",
+ "object-tests/many/0651",
+ "object-tests/many/0652",
+ "object-tests/many/0653",
+ "object-tests/many/0654",
+ "object-tests/many/0655",
+ "object-tests/many/0656",
+ "object-tests/many/0657",
+ "object-tests/many/0658",
+ "object-tests/many/0659",
+ "object-tests/many/0660",
+ "object-tests/many/0661",
+ "object-tests/many/0662",
+ "object-tests/many/0663",
+ "object-tests/many/0664",
+ "object-tests/many/0665",
+ "object-tests/many/0666",
+ "object-tests/many/0667",
+ "object-tests/many/0668",
+ "object-tests/many/0669",
+ "object-tests/many/0670",
+ "object-tests/many/0671",
+ "object-tests/many/0672",
+ "object-tests/many/0673",
+ "object-tests/many/0674",
+ "object-tests/many/0675",
+ "object-tests/many/0676",
+ "object-tests/many/0677",
+ "object-tests/many/0678",
+ "object-tests/many/0679",
+ "object-tests/many/0680",
+ "object-tests/many/0681",
+ "object-tests/many/0682",
+ "object-tests/many/0683",
+ "object-tests/many/0684",
+ "object-tests/many/0685",
+ "object-tests/many/0686",
+ "object-tests/many/0687",
+ "object-tests/many/0688",
+ "object-tests/many/0689",
+ "object-tests/many/0690",
+ "object-tests/many/0691",
+ "object-tests/many/0692",
+ "object-tests/many/0693",
+ "object-tests/many/0694",
+ "object-tests/many/0695",
+ "object-tests/many/0696",
+ "object-tests/many/0697",
+ "object-tests/many/0698",
+ "object-tests/many/0699",
+ "object-tests/many/0700",
+ "object-tests/many/0701",
+ "object-tests/many/0702",
+ "object-tests/many/0703",
+ "object-tests/many/0704",
+ "object-tests/many/0705",
+ "object-tests/many/0706",
+ "object-tests/many/0707",
+ "object-tests/many/0708",
+ "object-tests/many/0709",
+ "object-tests/many/0710",
+ "object-tests/many/0711",
+ "object-tests/many/0712",
+ "object-tests/many/0713",
+ "object-tests/many/0714",
+ "object-tests/many/0715",
+ "object-tests/many/0716",
+ "object-tests/many/0717",
+ "object-tests/many/0718",
+ "object-tests/many/0719",
+ "object-tests/many/0720",
+ "object-tests/many/0721",
+ "object-tests/many/0722",
+ "object-tests/many/0723",
+ "object-tests/many/0724",
+ "object-tests/many/0725",
+ "object-tests/many/0726",
+ "object-tests/many/0727",
+ "object-tests/many/0728",
+ "object-tests/many/0729",
+ "object-tests/many/0730",
+ "object-tests/many/0731",
+ "object-tests/many/0732",
+ "object-tests/many/0733",
+ "object-tests/many/0734",
+ "object-tests/many/0735",
+ "object-tests/many/0736",
+ "object-tests/many/0737",
+ "object-tests/many/0738",
+ "object-tests/many/0739",
+ "object-tests/many/0740",
+ "object-tests/many/0741",
+ "object-tests/many/0742",
+ "object-tests/many/0743",
+ "object-tests/many/0744",
+ "object-tests/many/0745",
+ "object-tests/many/0746",
+ "object-tests/many/0747",
+ "object-tests/many/0748",
+ "object-tests/many/0749",
+ "object-tests/many/0750",
+ "object-tests/many/0751",
+ "object-tests/many/0752",
+ "object-tests/many/0753",
+ "object-tests/many/0754",
+ "object-tests/many/0755",
+ "object-tests/many/0756",
+ "object-tests/many/0757",
+ "object-tests/many/0758",
+ "object-tests/many/0759",
+ "object-tests/many/0760",
+ "object-tests/many/0761",
+ "object-tests/many/0762",
+ "object-tests/many/0763",
+ "object-tests/many/0764",
+ "object-tests/many/0765",
+ "object-tests/many/0766",
+ "object-tests/many/0767",
+ "object-tests/many/0768",
+ "object-tests/many/0769",
+ "object-tests/many/0770",
+ "object-tests/many/0771",
+ "object-tests/many/0772",
+ "object-tests/many/0773",
+ "object-tests/many/0774",
+ "object-tests/many/0775",
+ "object-tests/many/0776",
+ "object-tests/many/0777",
+ "object-tests/many/0778",
+ "object-tests/many/0779",
+ "object-tests/many/0780",
+ "object-tests/many/0781",
+ "object-tests/many/0782",
+ "object-tests/many/0783",
+ "object-tests/many/0784",
+ "object-tests/many/0785",
+ "object-tests/many/0786",
+ "object-tests/many/0787",
+ "object-tests/many/0788",
+ "object-tests/many/0789",
+ "object-tests/many/0790",
+ "object-tests/many/0791",
+ "object-tests/many/0792",
+ "object-tests/many/0793",
+ "object-tests/many/0794",
+ "object-tests/many/0795",
+ "object-tests/many/0796",
+ "object-tests/many/0797",
+ "object-tests/many/0798",
+ "object-tests/many/0799",
+ "object-tests/many/0800",
+ "object-tests/many/0801",
+ "object-tests/many/0802",
+ "object-tests/many/0803",
+ "object-tests/many/0804",
+ "object-tests/many/0805",
+ "object-tests/many/0806",
+ "object-tests/many/0807",
+ "object-tests/many/0808",
+ "object-tests/many/0809",
+ "object-tests/many/0810",
+ "object-tests/many/0811",
+ "object-tests/many/0812",
+ "object-tests/many/0813",
+ "object-tests/many/0814",
+ "object-tests/many/0815",
+ "object-tests/many/0816",
+ "object-tests/many/0817",
+ "object-tests/many/0818",
+ "object-tests/many/0819",
+ "object-tests/many/0820",
+ "object-tests/many/0821",
+ "object-tests/many/0822",
+ "object-tests/many/0823",
+ "object-tests/many/0824",
+ "object-tests/many/0825",
+ "object-tests/many/0826",
+ "object-tests/many/0827",
+ "object-tests/many/0828",
+ "object-tests/many/0829",
+ "object-tests/many/0830",
+ "object-tests/many/0831",
+ "object-tests/many/0832",
+ "object-tests/many/0833",
+ "object-tests/many/0834",
+ "object-tests/many/0835",
+ "object-tests/many/0836",
+ "object-tests/many/0837",
+ "object-tests/many/0838",
+ "object-tests/many/0839",
+ "object-tests/many/0840",
+ "object-tests/many/0841",
+ "object-tests/many/0842",
+ "object-tests/many/0843",
+ "object-tests/many/0844",
+ "object-tests/many/0845",
+ "object-tests/many/0846",
+ "object-tests/many/0847",
+ "object-tests/many/0848",
+ "object-tests/many/0849",
+ "object-tests/many/0850",
+ "object-tests/many/0851",
+ "object-tests/many/0852",
+ "object-tests/many/0853",
+ "object-tests/many/0854",
+ "object-tests/many/0855",
+ "object-tests/many/0856",
+ "object-tests/many/0857",
+ "object-tests/many/0858",
+ "object-tests/many/0859",
+ "object-tests/many/0860",
+ "object-tests/many/0861",
+ "object-tests/many/0862",
+ "object-tests/many/0863",
+ "object-tests/many/0864",
+ "object-tests/many/0865",
+ "object-tests/many/0866",
+ "object-tests/many/0867",
+ "object-tests/many/0868",
+ "object-tests/many/0869",
+ "object-tests/many/0870",
+ "object-tests/many/0871",
+ "object-tests/many/0872",
+ "object-tests/many/0873",
+ "object-tests/many/0874",
+ "object-tests/many/0875",
+ "object-tests/many/0876",
+ "object-tests/many/0877",
+ "object-tests/many/0878",
+ "object-tests/many/0879",
+ "object-tests/many/0880",
+ "object-tests/many/0881",
+ "object-tests/many/0882",
+ "object-tests/many/0883",
+ "object-tests/many/0884",
+ "object-tests/many/0885",
+ "object-tests/many/0886",
+ "object-tests/many/0887",
+ "object-tests/many/0888",
+ "object-tests/many/0889",
+ "object-tests/many/0890",
+ "object-tests/many/0891",
+ "object-tests/many/0892",
+ "object-tests/many/0893",
+ "object-tests/many/0894",
+ "object-tests/many/0895",
+ "object-tests/many/0896",
+ "object-tests/many/0897",
+ "object-tests/many/0898",
+ "object-tests/many/0899",
+ "object-tests/many/0900",
+ "object-tests/many/0901",
+ "object-tests/many/0902",
+ "object-tests/many/0903",
+ "object-tests/many/0904",
+ "object-tests/many/0905",
+ "object-tests/many/0906",
+ "object-tests/many/0907",
+ "object-tests/many/0908",
+ "object-tests/many/0909",
+ "object-tests/many/0910",
+ "object-tests/many/0911",
+ "object-tests/many/0912",
+ "object-tests/many/0913",
+ "object-tests/many/0914",
+ "object-tests/many/0915",
+ "object-tests/many/0916",
+ "object-tests/many/0917",
+ "object-tests/many/0918",
+ "object-tests/many/0919",
+ "object-tests/many/0920",
+ "object-tests/many/0921",
+ "object-tests/many/0922",
+ "object-tests/many/0923",
+ "object-tests/many/0924",
+ "object-tests/many/0925",
+ "object-tests/many/0926",
+ "object-tests/many/0927",
+ "object-tests/many/0928",
+ "object-tests/many/0929",
+ "object-tests/many/0930",
+ "object-tests/many/0931",
+ "object-tests/many/0932",
+ "object-tests/many/0933",
+ "object-tests/many/0934",
+ "object-tests/many/0935",
+ "object-tests/many/0936",
+ "object-tests/many/0937",
+ "object-tests/many/0938",
+ "object-tests/many/0939",
+ "object-tests/many/0940",
+ "object-tests/many/0941",
+ "object-tests/many/0942",
+ "object-tests/many/0943",
+ "object-tests/many/0944",
+ "object-tests/many/0945",
+ "object-tests/many/0946",
+ "object-tests/many/0947",
+ "object-tests/many/0948",
+ "object-tests/many/0949",
+ "object-tests/many/0950",
+ "object-tests/many/0951",
+ "object-tests/many/0952",
+ "object-tests/many/0953",
+ "object-tests/many/0954",
+ "object-tests/many/0955",
+ "object-tests/many/0956",
+ "object-tests/many/0957",
+ "object-tests/many/0958",
+ "object-tests/many/0959",
+ "object-tests/many/0960",
+ "object-tests/many/0961",
+ "object-tests/many/0962",
+ "object-tests/many/0963",
+ "object-tests/many/0964",
+ "object-tests/many/0965",
+ "object-tests/many/0966",
+ "object-tests/many/0967",
+ "object-tests/many/0968",
+ "object-tests/many/0969",
+ "object-tests/many/0970",
+ "object-tests/many/0971",
+ "object-tests/many/0972",
+ "object-tests/many/0973",
+ "object-tests/many/0974",
+ "object-tests/many/0975",
+ "object-tests/many/0976",
+ "object-tests/many/0977",
+ "object-tests/many/0978",
+ "object-tests/many/0979",
+ "object-tests/many/0980",
+ "object-tests/many/0981",
+ "object-tests/many/0982",
+ "object-tests/many/0983",
+ "object-tests/many/0984",
+ "object-tests/many/0985",
+ "object-tests/many/0986",
+ "object-tests/many/0987",
+ "object-tests/many/0988",
+ "object-tests/many/0989",
+ "object-tests/many/0990",
+ "object-tests/many/0991",
+ "object-tests/many/0992",
+ "object-tests/many/0993",
+ "object-tests/many/0994",
+ "object-tests/many/0995",
+ "object-tests/many/0996",
+ "object-tests/many/0997",
+ "object-tests/many/0998",
+ "object-tests/many/0999",
+ "object-tests/many/1000"
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/list-prefix-special-characters",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Percent-encode the prefix in the query, a space as %20 and a plus as %2B, and decode the common prefixes of a URL-encoded listing as well as the keys",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "delimiter": "/",
+ "op": "list_page",
+ "prefix": "object-tests/odd a+b&c=d%é/"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -146353,37 +189543,13 @@
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -146392,122 +189558,19 @@
"value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
{
"at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
"at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
+ "is": "absent"
}
}
],
@@ -146516,22 +189579,21 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
- ],
- "optional": true
+ ]
},
{
"alternatives": [
@@ -146561,30 +189623,6 @@
"value": ""
}
},
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -146608,52 +189646,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
},
{
"at": "/query/list-type",
@@ -146668,47 +189660,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "value": "object-tests/odd a+b&c=d%é/"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/query/delimiter",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "/"
}
}
],
@@ -146717,25 +189677,20 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "data": "\nfixtureobject-tests/odd a+b&c=d%é/21000/falseobject-tests/odd a+b&c=d%é/x.txt2024-01-01T00:00:00.000Z"fixture-6f6464200000"CRC64NVMEFULL_OBJECT1EXPRESS_ONEZONEobject-tests/odd a+b&c=d%é/sub dir+/"
+ }
}
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -146762,30 +189717,6 @@
"value": ""
}
},
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -146809,52 +189740,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 503,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
},
{
"at": "/query/list-type",
@@ -146869,39 +189754,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "value": "object-tests/odd a+b&c=d%é/"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/query/delimiter",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "value": "/"
}
},
{
@@ -146918,22 +189779,21 @@
],
"allow_query": [],
"response": {
- "status": 503,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nServiceUnavailablePlease reduce your request rate.fixture"
- },
- "framing": "chunked"
+ "data": "\nfixtureobject-tests/odd+a%2Bb%26c%3Dd%25%C3%A9/21000/urlfalseobject-tests/odd+a%2Bb%26c%3Dd%25%C3%A9/x.txt2024-01-01T00:00:00.000Z"fixture-6f6464200000"CRC64NVMEFULL_OBJECT1EXPRESS_ONEZONEobject-tests/odd+a%2Bb%26c%3Dd%25%C3%A9/sub+dir%2B/"
+ }
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -146942,331 +189802,64 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/entries/0/key",
"optional": false,
"rule": {
"is": "equal",
- "value": 503
+ "value": "object-tests/odd a+b&c=d%é/x.txt"
}
},
{
- "at": "/code",
+ "at": "/value/entries/0/size",
"optional": false,
"rule": {
"is": "equal",
- "value": "ServiceUnavailable"
+ "value": 1
}
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/list-max-keys-zero",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "Send page_size 0 as max-keys=0; S3 answers an empty page that is not truncated",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "op": "list_page",
- "page_size": 0,
- "prefix": "object-tests/board/"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/query/session",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
- }
- }
- ]
},
{
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "0"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/00false"
- }
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "0"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/00urlfalse"
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
+ "at": "/value/entries/0/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "\"fixture-6f6464200000\""
}
},
{
- "at": "/value/continuation_token",
- "optional": false,
+ "at": "/value/entries/0/snapshot",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ },
+ {
+ "at": "/value/entries/0/is_current_version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ false
+ ]
}
},
{
@@ -147274,7 +189867,15 @@
"optional": false,
"rule": {
"is": "array_length",
- "value": 0
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/prefixes/0",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "object-tests/odd a+b&c=d%é/sub dir+/"
}
},
{
@@ -147282,25 +189883,32 @@
"optional": false,
"rule": {
"is": "array_length",
- "value": 0
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/continuation_token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-next-page",
+ "id": "operations/s3-express/list-start-after",
"profile": "s3-express",
"lane": "core",
- "purpose": "Send the continuation token as continuation-token, a + in it as %2B, and report an empty token for the last page",
+ "purpose": "Report the NotSupported error that a directory bucket answers to start-after",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "continuation_token": "fixture-marker+/88ab99096baf=",
"op": "list_page",
- "page_size": 2,
- "prefix": "object-tests/board/"
+ "prefix": "object-tests/board/",
+ "start_after": "object-tests/board/a.txt"
},
"exchanges": [
{
@@ -147405,59 +190013,51 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "fixture-session-token"
}
},
{
- "at": "/query/max-keys",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/query/continuation-token",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-marker+/88ab99096baf="
+ "value": "2"
}
},
{
- "at": "/headers/host",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "value": "object-tests/board/"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/query/start-after",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "value": "object-tests/board/a.txt"
}
}
],
@@ -147466,18 +190066,18 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 501,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/88ab99096baf=12falseCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT"
- }
+ "data": "\nNotSupportedFixture error"
+ },
+ "framing": "chunked"
}
},
{
@@ -147507,59 +190107,51 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "fixture-session-token"
}
},
{
- "at": "/query/max-keys",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/query/continuation-token",
+ "at": "/query/list-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-marker+/88ab99096baf="
+ "value": "2"
}
},
{
- "at": "/headers/host",
+ "at": "/query/prefix",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "value": "object-tests/board/"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/query/start-after",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "value": "object-tests/board/a.txt"
}
},
{
@@ -147576,128 +190168,64 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 501,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/Aa76REiOO0gPR6lKkFyUFtl1AAAAAAAAAAGoXKBqAAAAAAQAAAAAAAAAscQ7ZzgAAAAAAAAAQUI4QUFBQUFBQUFBYjJKcVpXTjBMWFJsYzNSekwySnZZWEprTDI1bGMzUmxaQzlqTG5SNGRBRT3cnmYCxwsmD0raHf15FaRAP0L8TRD3Kes0lU2EWDoJdA==12urlfalseCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT"
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/a.txt"
- }
- },
+ "encoding": "utf8",
+ "data": "\nNotSupportedFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/entries/0/size",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": 8
+ "value": "error"
}
},
{
- "at": "/value/entries/0/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ca40e4206a8d\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "value": 501
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
+ "value": "NotSupported"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-order-delimited",
+ "id": "operations/s3-express/list-truncated-without-token",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report the entries and the common prefixes in the order a directory bucket sends them, without sorting them",
+ "purpose": "Report an error when a truncated page carries no continuation token; do not stop early or list from the start again",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
+ "origin": "constructed",
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/order/"
+ "op": "list",
+ "page_size": 2,
+ "prefix": "object-tests/board/"
},
"exchanges": [
{
@@ -147814,15 +190342,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/"
+ "value": "object-tests/board/"
}
},
{
- "at": "/query/delimiter",
+ "at": "/query/max-keys",
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "2"
}
},
{
@@ -147865,7 +190393,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/order/81000falseCRC64NVME"fixture-67e7081fe36a"object-tests/order/a2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-e93bd77ca678"object-tests/order/é2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-b6a492ea4100"object-tests/order/a02024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-3a908dcdb129"object-tests/order/a.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-a19aa03709bc"object-tests/order/A2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-62a88dc05318"object-tests/order/a-b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-58bd4a8a6eb3"object-tests/order/b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT/object-tests/order/a/"
+ "data": "\nfixtureobject-tests/board/22trueCRC64NVME"fixture-626f61720000"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-626f61720001"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
}
}
},
@@ -147908,15 +190436,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/"
+ "value": "object-tests/board/"
}
},
{
- "at": "/query/delimiter",
+ "at": "/query/max-keys",
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
},
{
@@ -147942,14 +190478,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
- }
}
],
"allow_headers": [
@@ -147967,7 +190495,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/order/81000urlfalseCRC64NVME"fixture-67e7081fe36a"object-tests/order/a2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-e93bd77ca678"object-tests/order/%C3%A92024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-b6a492ea4100"object-tests/order/a02024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-3a908dcdb129"object-tests/order/a.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-a19aa03709bc"object-tests/order/A2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-62a88dc05318"object-tests/order/a-b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-58bd4a8a6eb3"object-tests/order/b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT/object-tests/order/a/"
+ "data": "\nfixtureobject-tests/board/22urltrueCRC64NVME"fixture-626f61720000"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-626f61720001"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
}
}
}
@@ -147980,454 +190508,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-67e7081fe36a\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/é"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-e93bd77ca678\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a0"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-b6a492ea4100\""
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a.txt"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-3a908dcdb129\""
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/4/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/A"
- }
- },
- {
- "at": "/value/entries/4/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/4/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-a19aa03709bc\""
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/5/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a-b"
- }
- },
- {
- "at": "/value/entries/5/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/5/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-62a88dc05318\""
- }
- },
- {
- "at": "/value/entries/5/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/6/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/b"
- }
- },
- {
- "at": "/value/entries/6/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/6/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-58bd4a8a6eb3\""
- }
- },
- {
- "at": "/value/entries/6/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/prefixes/0",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a/"
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 7
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
+ "value": "error"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-order",
+ "id": "operations/s3-express/list-encoding-ignored",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report the entries in the order a directory bucket sends them, which is not sorted, without sorting them again",
+ "purpose": "Read the keys as sent when a service ignores encoding-type=url and the page has no EncodingType; a % that begins no escape is text, as in URL percent-decoding",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://github.com/rclone/rclone/tree/master/backend/s3/provider",
+ "https://url.spec.whatwg.org/#percent-decode"
],
+ "origin": "constructed",
"call": {
"op": "list_page",
- "prefix": "object-tests/order/"
+ "prefix": "object-tests/percent/"
},
"exchanges": [
{
@@ -148544,7 +190643,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/"
+ "value": "object-tests/percent/"
}
},
{
@@ -148587,7 +190686,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/order/81000falseCRC64NVME"fixture-67e7081fe36a"object-tests/order/a2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-e93bd77ca678"object-tests/order/é2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-b6a492ea4100"object-tests/order/a02024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-3a908dcdb129"object-tests/order/a.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-a19aa03709bc"object-tests/order/A2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-bdef091a4e21"object-tests/order/a/b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-62a88dc05318"object-tests/order/a-b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-58bd4a8a6eb3"object-tests/order/b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ "data": "\nfixtureobject-tests/percent/31000falseCRC64NVME"fixture-706572000000"object-tests/percent/%zz.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-706572000001"object-tests/percent/100%-off.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-706572000002"object-tests/percent/50%2024-01-01T00:00:00.000Z3EXPRESS_ONEZONEFULL_OBJECT"
}
}
},
@@ -148630,7 +190729,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/"
+ "value": "object-tests/percent/"
+ }
+ },
+ {
+ "at": "/query/encoding-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "url"
}
},
{
@@ -148656,14 +190763,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
- }
}
],
"allow_headers": [
@@ -148681,7 +190780,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/order/81000urlfalseCRC64NVME"fixture-67e7081fe36a"object-tests/order/a2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-e93bd77ca678"object-tests/order/%C3%A92024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-b6a492ea4100"object-tests/order/a02024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-3a908dcdb129"object-tests/order/a.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-a19aa03709bc"object-tests/order/A2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-bdef091a4e21"object-tests/order/a/b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-62a88dc05318"object-tests/order/a-b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-58bd4a8a6eb3"object-tests/order/b2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ "data": "\nfixtureobject-tests/percent/31000falseCRC64NVME"fixture-706572000000"object-tests/percent/%zz.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-706572000001"object-tests/percent/100%-off.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-706572000002"object-tests/percent/50%2024-01-01T00:00:00.000Z3EXPRESS_ONEZONEFULL_OBJECT"
}
}
}
@@ -148702,7 +190801,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/a"
+ "value": "object-tests/percent/%zz.txt"
}
},
{
@@ -148718,7 +190817,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-67e7081fe36a\""
+ "value": "\"fixture-706572000000\""
}
},
{
@@ -148759,7 +190858,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/é"
+ "value": "object-tests/percent/100%-off.txt"
}
},
{
@@ -148767,7 +190866,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 2
}
},
{
@@ -148775,7 +190874,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-e93bd77ca678\""
+ "value": "\"fixture-706572000001\""
}
},
{
@@ -148816,7 +190915,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/order/a0"
+ "value": "object-tests/percent/50%"
}
},
{
@@ -148824,7 +190923,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 3
}
},
{
@@ -148832,7 +190931,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-b6a492ea4100\""
+ "value": "\"fixture-706572000002\""
}
},
{
@@ -148869,288 +190968,19 @@
}
},
{
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a.txt"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-3a908dcdb129\""
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/4/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/A"
- }
- },
- {
- "at": "/value/entries/4/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/4/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-a19aa03709bc\""
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/5/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a/b"
- }
- },
- {
- "at": "/value/entries/5/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/5/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-bdef091a4e21\""
- }
- },
- {
- "at": "/value/entries/5/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/5/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/6/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/a-b"
- }
- },
- {
- "at": "/value/entries/6/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/6/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-62a88dc05318\""
- }
- },
- {
- "at": "/value/entries/6/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/6/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/7/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/order/b"
- }
- },
- {
- "at": "/value/entries/7/size",
+ "at": "/value/entries",
"optional": false,
"rule": {
- "is": "equal",
- "value": 1
+ "is": "array_length",
+ "value": 3
}
},
{
- "at": "/value/entries/7/etag",
+ "at": "/value/prefixes",
"optional": false,
"rule": {
- "is": "equal",
- "value": "\"fixture-58bd4a8a6eb3\""
- }
- },
- {
- "at": "/value/entries/7/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/7/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/7/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
+ "is": "array_length",
+ "value": 0
}
},
{
@@ -149160,38 +190990,22 @@
"is": "equal",
"value": ""
}
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 8
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-other-delimiter",
+ "id": "operations/s3-express/put-created-empty",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report the 400 InvalidRequest that a directory bucket answers to a delimiter other than /, or refuse it before sending",
+ "purpose": "put created empty",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "delimiter": "-",
- "op": "list_page",
- "prefix": "object-tests/board/"
+ "body_base64": "",
+ "key": "object-tests/write/empty.bin",
+ "op": "put"
},
"exchanges": [
{
@@ -149276,141 +191090,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/delimiter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "-"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 400,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nInvalidRequestFixture error"
- },
- "framing": "chunked"
- }
- },
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "PUT"
}
},
{
- "at": "/query/prefix",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "/object-tests/write/empty.bin"
}
},
{
- "at": "/query/delimiter",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "-"
+ "value": ""
}
},
{
@@ -149436,14 +191132,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
- }
}
],
"allow_headers": [
@@ -149451,16 +191139,17 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-de1997e62b9b\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidRequestThis bucket only supports '/' as a delimiter01a36c7dc10001a08269f29d0c1a80c2547f97e2NIAczpdqY"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
@@ -149474,80 +191163,43 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidRequest"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
+ "value": "ok"
}
},
{
- "at": "/parameter",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "delimiter"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
+ "value": "\"fixture-de1997e62b9b\""
}
},
{
- "at": "/code",
+ "at": "/value/version",
"optional": true,
"rule": {
- "is": "equal",
- "value": "InvalidRequest"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
- ]
+ ],
+ "refusal": null
},
{
- "id": "operations/s3-express/list-page",
+ "id": "operations/s3-express/put-created",
"profile": "s3-express",
"lane": "core",
- "purpose": "List a prefix with ListObjectsV2 (list-type=2), and report each entry's key, size and ETag, quotes included",
+ "purpose": "put created",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/board/"
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -149632,7 +191284,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -149640,7 +191292,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/write/object.txt"
}
},
{
@@ -149648,23 +191300,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -149699,18 +191335,69 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-68e2c5df0cb2\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/31000falseCRC64NVME"fixture-7d1b875717fa"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-d9b959b4d7a6"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT"
- }
+ "encoding": "base64",
+ "data": ""
+ },
+ "framing": "chunked"
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-68e2c5df0cb2\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/put-created-key-question",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "put created, with the key \"question?mark.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/question?mark.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -149730,7 +191417,7 @@
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -149738,19 +191425,76 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/keys/question?mark.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -149776,14 +191520,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
- }
}
],
"allow_headers": [
@@ -149793,16 +191529,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-68e2c5df0cb2\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/31000urlfalseCRC64NVME"fixture-7d1b875717fa"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-d9b959b4d7a6"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-ca40e4206a8d"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT"
- }
+ "encoding": "base64",
+ "data": ""
+ },
+ "framing": "chunked"
}
}
]
@@ -149818,156 +191555,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/z.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-7d1b875717fa\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/nested/c.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-d9b959b4d7a6\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/a.txt"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 8
- }
- },
- {
- "at": "/value/entries/2/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ca40e4206a8d\""
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-68e2c5df0cb2\""
}
},
{
- "at": "/value/entries/2/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -149976,56 +191572,22 @@
""
]
}
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 3
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-prefix-without-slash",
+ "id": "operations/s3-express/put-created-key-hash",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report the 400 InvalidRequest that a directory bucket answers to a prefix not ending in /, or refuse it before sending",
+ "purpose": "put created, with the key \"hash#tag.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/boa"
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/hash#tag.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -150110,7 +191672,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -150118,7 +191680,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/keys/hash#tag.txt"
}
},
{
@@ -150126,23 +191688,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/boa"
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -150175,20 +191721,71 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-68e2c5df0cb2\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidRequestFixture error"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-68e2c5df0cb2\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/put-created-key-percent",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "put created, with the key \"percent%20.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/percent%20.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -150208,7 +191805,7 @@
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -150216,19 +191813,76 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/boa"
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/keys/percent%20.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -150254,14 +191908,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
- }
}
],
"allow_headers": [
@@ -150269,16 +191915,17 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-68e2c5df0cb2\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidRequestThis bucket does not support a prefix that does not end in a delimiter. Specify a prefix path ending with a delimiter and try again.0183be19920001a08269f26d0c1a43b807f6c3286pF5i69Tlzo"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
@@ -150292,81 +191939,43 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidRequest"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
+ "value": "ok"
}
},
{
- "at": "/parameter",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "prefix"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
+ "value": "\"fixture-68e2c5df0cb2\""
}
},
{
- "at": "/code",
+ "at": "/value/version",
"optional": true,
"rule": {
- "is": "equal",
- "value": "InvalidRequest"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
- ]
+ ],
+ "refusal": null
},
{
- "id": "operations/s3-express/list-separator-keys-delimited",
+ "id": "operations/s3-express/put-created-key-plus",
"profile": "s3-express",
"lane": "core",
- "purpose": "Group each key at the first delimiter after the prefix, even where the key repeats it or ends with it",
+ "purpose": "put created, with the key \"plus+plus.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/separators/"
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/plus+plus.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -150451,7 +192060,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -150459,7 +192068,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/keys/plus+plus.txt"
}
},
{
@@ -150467,31 +192076,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/"
- }
- },
- {
- "at": "/query/delimiter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -150526,18 +192111,69 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-68e2c5df0cb2\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/separators/61000falseCRC64NVME"fixture-42aa4973e21e"object-tests/separators/..leading2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-9282c60ce573"object-tests/separators/dot.2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT/object-tests/separators/space /object-tests/separators/a.b/object-tests/separators/trailing/object-tests/separators/double/"
- }
+ "encoding": "base64",
+ "data": ""
+ },
+ "framing": "chunked"
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-68e2c5df0cb2\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/put-created-key-space",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "put created, with the key \"space name.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/space name.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -150557,7 +192193,7 @@
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -150565,27 +192201,76 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/separators/"
+ "value": "PUT"
}
},
{
- "at": "/query/delimiter",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/keys/space name.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -150611,14 +192296,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
- }
}
],
"allow_headers": [
@@ -150628,214 +192305,65 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-68e2c5df0cb2\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/separators/61000urlfalseCRC64NVME"fixture-42aa4973e21e"object-tests/separators/..leading2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-9282c60ce573"object-tests/separators/dot.2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT/object-tests/separators/space+/object-tests/separators/a.b/object-tests/separators/trailing/object-tests/separators/double/"
- }
+ "encoding": "base64",
+ "data": ""
+ },
+ "framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/..leading"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-42aa4973e21e\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/dot."
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-9282c60ce573\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/prefixes/0",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/space /"
- }
- },
- {
- "at": "/value/prefixes/1",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/a.b/"
- }
- },
- {
- "at": "/value/prefixes/2",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/trailing/"
- }
- },
- {
- "at": "/value/prefixes/3",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/double/"
- }
- },
+ ]
+ }
+ ],
+ "expect": [
{
- "at": "/value/continuation_token",
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "ok"
}
},
{
- "at": "/value/entries",
+ "at": "/value/etag",
"optional": false,
"rule": {
- "is": "array_length",
- "value": 2
+ "is": "equal",
+ "value": "\"fixture-68e2c5df0cb2\""
}
},
{
- "at": "/value/prefixes",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "array_length",
- "value": 4
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-separator-keys",
+ "id": "operations/s3-express/put-created-key-non-ascii",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report keys with leading dots, repeated slashes, a space and a trailing slash exactly as stored",
+ "purpose": "put created, with the key \"café/雪.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/separators/"
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/café/雪.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -150920,7 +192448,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -150928,7 +192456,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/keys/café/雪.txt"
}
},
{
@@ -150936,23 +192464,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/"
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -150987,18 +192499,69 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-68e2c5df0cb2\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/separators/61000falseCRC64NVME"fixture-42aa4973e21e"object-tests/separators/..leading2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-42eb96253921"object-tests/separators/space /x2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-9282c60ce573"object-tests/separators/dot.2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-3103883be81f"object-tests/separators/a.b/c2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-9122241c6748"object-tests/separators/trailing/2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-86940355381a"object-tests/separators/double//slash2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
- }
+ "encoding": "base64",
+ "data": ""
+ },
+ "framing": "chunked"
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-68e2c5df0cb2\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/put-created-key-double-slash",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "put created, with the key \"double//slash.txt\"",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/double//slash.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -151018,7 +192581,7 @@
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -151026,19 +192589,76 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/separators/"
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/keys/double//slash.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -151064,14 +192684,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
- }
}
],
"allow_headers": [
@@ -151081,16 +192693,17 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-68e2c5df0cb2\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/separators/61000urlfalseCRC64NVME"fixture-42aa4973e21e"object-tests/separators/..leading2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-42eb96253921"object-tests/separators/space+/x2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-9282c60ce573"object-tests/separators/dot.2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-3103883be81f"object-tests/separators/a.b/c2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-9122241c6748"object-tests/separators/trailing/2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-86940355381a"object-tests/separators/double//slash2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
- }
+ "encoding": "base64",
+ "data": ""
+ },
+ "framing": "chunked"
}
}
]
@@ -151106,327 +192719,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/..leading"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-42aa4973e21e\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/space /x"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-42eb96253921\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/dot."
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/2/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-9282c60ce573\""
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/3/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/a.b/c"
- }
- },
- {
- "at": "/value/entries/3/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/3/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-3103883be81f\""
- }
- },
- {
- "at": "/value/entries/3/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/3/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/4/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/trailing/"
- }
- },
- {
- "at": "/value/entries/4/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/4/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-9122241c6748\""
- }
- },
- {
- "at": "/value/entries/4/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/4/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/5/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/separators/double//slash"
- }
- },
- {
- "at": "/value/entries/5/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/5/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-86940355381a\""
- }
- },
- {
- "at": "/value/entries/5/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-68e2c5df0cb2\""
}
},
{
- "at": "/value/entries/5/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -151435,57 +192736,22 @@
""
]
}
- },
- {
- "at": "/value/entries/5/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 6
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-all-pages",
+ "id": "operations/s3-express/put-created-key-trailing-slash",
"profile": "s3-express",
"lane": "core",
- "purpose": "Follow each page's continuation token until a page is not truncated",
+ "purpose": "put created, with the key \"trailing-slash/\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "op": "list",
- "page_size": 1,
- "prefix": "object-tests/board/"
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "key": "object-tests/keys/trailing-slash/",
+ "op": "put"
},
"exchanges": [
{
@@ -151570,7 +192836,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -151578,7 +192844,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/keys/trailing-slash/"
}
},
{
@@ -151586,31 +192852,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1"
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -151645,18 +192887,69 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
+ "etag": "\"fixture-68e2c5df0cb2\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=11trueCRC64NVME"fixture-626f61720000"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT"
- }
+ "encoding": "base64",
+ "data": ""
+ },
+ "framing": "chunked"
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-68e2c5df0cb2\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/copy-missing-source",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Refuse a copy whose source does not exist",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/absent.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -151664,7 +192957,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -151672,7 +192965,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/target.txt"
}
},
{
@@ -151684,51 +192977,88 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "2"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/absent\\.txt"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/max-keys",
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 404,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nNoSuchKeyFixture error"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "HEAD"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "/object-tests/copy/absent.txt"
}
},
{
- "at": "/headers/host",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "value": ""
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
@@ -151736,7 +193066,14 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
@@ -151745,22 +193082,65 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=11urltrueCRC64NVME"fixture-626f61720000"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECT"
+ "encoding": "empty"
}
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 404
+ }
},
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "NoSuchKey",
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/copy",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Copy an object to another key in the same bucket",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -151770,7 +193150,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -151778,7 +193158,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/target.txt"
}
},
{
@@ -151790,35 +193170,11 @@
}
},
{
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1"
- }
- },
- {
- "at": "/query/continuation-token",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-marker+/a11ba9e5001="
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
},
{
@@ -151830,19 +193186,18 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
@@ -151856,13 +193211,13 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=fixture-marker+/a11ba9e5002=11trueCRC64NVME"fixture-626f61720001"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
- }
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ },
+ "framing": "chunked"
}
},
{
@@ -151872,7 +193227,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -151880,7 +193235,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -151892,43 +193247,206 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/query/max-keys",
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-length": "5",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ },
+ "body": {
+ "encoding": "empty"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/copy-200-internal-error",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Report a copy answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
+ "sources": [
+ "https://repost.aws/knowledge-center/s3-resolve-200-internalerror",
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html",
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html"
+ ],
+ "origin": "transient",
+ "derived_from": "operations/s3-express/copy",
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "1"
+ "value": "PUT"
}
},
{
- "at": "/query/continuation-token",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-marker+/a11ba9e5001="
+ "value": "/object-tests/copy/target.txt"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
},
{
@@ -151940,19 +193458,18 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
@@ -151966,19 +193483,15 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5001=fixture-marker+/a11ba9e5002=11urltrueCRC64NVME"fixture-626f61720001"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
- }
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
- }
- ]
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -151986,7 +193499,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -151994,7 +193507,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -152005,38 +193518,6 @@
"value": ""
}
},
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1"
- }
- },
- {
- "at": "/query/continuation-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-marker+/a11ba9e5002="
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -152046,22 +193527,104 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -152069,18 +193632,22 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5",
"date": {
"from": "now"
},
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11falseCRC64NVME"fixture-626f61720002"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECT"
+ "encoding": "empty"
}
}
- },
+ }
+ ]
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -152088,7 +193655,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -152096,7 +193663,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/target.txt"
}
},
{
@@ -152108,43 +193675,11 @@
}
},
{
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
- }
- },
- {
- "at": "/query/max-keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1"
- }
- },
- {
- "at": "/query/continuation-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-marker+/a11ba9e5002="
- }
- },
- {
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "url"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
},
{
@@ -152156,19 +193691,18 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
@@ -152182,55 +193716,18 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/fixture-marker+/a11ba9e5002=11urlfalseCRC64NVME"fixture-626f61720002"object-tests/board/z.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECT"
- }
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
+ ],
+ "optional": true
},
- {
- "at": "/value/keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": [
- "object-tests/board/a.txt",
- "object-tests/board/nested/c.txt",
- "object-tests/board/z.txt"
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/list-bucket-missing",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "Report the NoSuchBucket error that CreateSession answers for a missing directory bucket, and send nothing more",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "op": "list_page",
- "prefix": ""
- },
- "exchanges": [
{
"alternatives": [
{
@@ -152240,7 +193737,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -152248,17 +193745,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/target.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -152288,7 +193793,7 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
"content-type": "application/xml",
"date": {
@@ -152297,55 +193802,14 @@
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchBucketFixture error"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "NoSuchBucket"
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/list-entry-properties",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "Report each listed object's last-modified time as RFC 3339 in UTC, and its storage class",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "op": "list_page",
- "prefix": "object-tests/properties/"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -152355,7 +193819,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -152363,17 +193827,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/target.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -152405,19 +193877,20 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
},
{
"alternatives": [
@@ -152428,7 +193901,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -152436,7 +193909,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/target.txt"
}
},
{
@@ -152448,19 +193921,19 @@
}
},
{
- "at": "/headers/host",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
@@ -152468,23 +193941,14 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/properties/"
+ "is": "absent"
}
}
],
@@ -152498,15 +193962,20 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/properties/11000falseobject-tests/properties/a.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2EXPRESS_ONEZONE"
- }
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
- },
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -152514,7 +193983,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -152522,7 +193991,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/target.txt"
}
},
{
@@ -152534,19 +194003,19 @@
}
},
{
- "at": "/headers/host",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
@@ -152554,31 +194023,14 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/properties/"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "url"
+ "is": "absent"
}
}
],
@@ -152592,16 +194044,17 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/properties/11000urlfalseobject-tests/properties/a.txt2024-01-02T03:04:05.000Z"fixture-5070726f0000"CRC64NVMEFULL_OBJECT2EXPRESS_ONEZONE"
- }
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -152610,121 +194063,36 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/properties/a.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-5070726f0000\""
- }
- },
- {
- "at": "/value/entries/0/last_modified",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2024-01-02T03:04:05Z"
- }
- },
- {
- "at": "/value/entries/0/storage_class",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "EXPRESS_ONEZONE"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
+ "value": "error"
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "InternalError"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-checksum-algorithm",
+ "id": "operations/s3-express/copy-replace-metadata",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report each listed object's checksum algorithm as one name; S3 keeps one checksum per object, the one a write sent or else CRC64NVME, and lists one ChecksumAlgorithm",
+ "purpose": "Copy an object with new metadata and a new content type. S3 keeps the source's unless x-amz-metadata-directive is REPLACE, so a client that sets either must send it",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html",
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/checksum-listing/"
+ "content_type": "text/plain",
+ "key": "object-tests/copy/target.txt",
+ "metadata": {
+ "colour": "blue"
+ },
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -152736,7 +194104,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -152744,17 +194112,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/target.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -152777,95 +194153,29 @@
"rule": {
"is": "absent"
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-metadata-directive",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/checksum-listing/"
+ "value": "REPLACE"
}
},
{
- "at": "/headers/host",
+ "at": "/headers/x-amz-meta-colour",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "value": "blue"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "value": "text/plain"
}
}
],
@@ -152879,13 +194189,13 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/checksum-listing/21000falseCRC32"fixture-636b736c0000"object-tests/checksum-listing/crc32.txt2024-01-01T00:00:00.000Z3EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-636b736c0001"object-tests/checksum-listing/none.txt2024-01-01T00:00:00.000Z4EXPRESS_ONEZONEFULL_OBJECT"
- }
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ },
+ "framing": "chunked"
}
},
{
@@ -152895,7 +194205,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -152903,7 +194213,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -152914,30 +194224,6 @@
"value": ""
}
},
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/checksum-listing/"
- }
- },
- {
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -152947,22 +194233,128 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ },
+ {
+ "at": "/headers/x-amz-metadata-directive",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "REPLACE"
+ }
+ },
+ {
+ "at": "/headers/x-amz-meta-colour",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blue"
+ }
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -152970,15 +194362,15 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5",
"date": {
"from": "now"
},
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/checksum-listing/21000urlfalseCRC32"fixture-636b736c0000"object-tests/checksum-listing/crc32.txt2024-01-01T00:00:00.000Z3EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-636b736c0001"object-tests/checksum-listing/none.txt2024-01-01T00:00:00.000Z4EXPRESS_ONEZONEFULL_OBJECT"
+ "encoding": "empty"
}
}
}
@@ -152993,176 +194385,23 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/checksum-listing/crc32.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 3
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-636b736c0000\""
- }
- },
- {
- "at": "/value/entries/0/checksum_algorithm",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "CRC32"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/checksum-listing/none.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 4
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-636b736c0001\""
- }
- },
- {
- "at": "/value/entries/1/checksum_algorithm",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "CRC64NVME"
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-fetch-owner",
+ "id": "operations/s3-express/copy-source-if-match",
"profile": "s3-express",
"lane": "core",
- "purpose": "Ask for owners with fetch-owner=true, and report each listed object's owner ID",
+ "purpose": "Copy an object only if the source still has this ETag, named in x-amz-copy-source-if-match",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "fetch_owner": true,
- "op": "list_page",
- "prefix": "object-tests/owner/"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_match": "\"fixture-etag\"",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -153174,7 +194413,92 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "HEAD"
}
},
{
@@ -153182,11 +194506,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/source.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
@@ -153217,6 +194541,97 @@
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -153224,20 +194639,48 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml"
+ "content-length": "5",
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
+ "encoding": "empty"
}
}
}
]
- },
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/copy-source-if-match-failed",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Report a copy whose source does not have the ETag in x-amz-copy-source-if-match as a failed condition. S3 answers 412 PreconditionFailed and writes nothing",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_match": "\"fixture-0123456789ab\"",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -153247,7 +194690,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -153255,7 +194698,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/target.txt"
}
},
{
@@ -153267,19 +194710,19 @@
}
},
{
- "at": "/headers/host",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
@@ -153287,31 +194730,22 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/owner/"
+ "is": "absent"
}
},
{
- "at": "/query/fetch-owner",
+ "at": "/headers/x-amz-copy-source-if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "true"
+ "value": "\"fixture-0123456789ab\""
}
}
],
@@ -153320,18 +194754,18 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/owner/11000falseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idEXPRESS_ONEZONE"
- }
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
}
},
{
@@ -153341,7 +194775,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -153349,7 +194783,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -153368,53 +194802,111 @@
"value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
{
"at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/owner/"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/query/fetch-owner",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "true"
+ "is": "absent"
}
- },
+ }
+ ],
+ "then": [
{
- "at": "/query/encoding-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "url"
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-0123456789ab\""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
}
],
"allow_headers": [
@@ -153424,15 +194916,15 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5",
"date": {
"from": "now"
},
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/owner/11000urlfalseobject-tests/owner/a.txt2024-01-01T00:00:00.000Z"fixture-6f776e650000"CRC64NVMEFULL_OBJECT1fixture-owner-idEXPRESS_ONEZONE"
+ "encoding": "empty"
}
}
}
@@ -153445,112 +194937,41 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/owner/a.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6f776e650000\""
+ "value": "error"
}
},
{
- "at": "/value/entries/0/owner_id",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-owner-id"
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
+ "value": 412
}
},
{
- "at": "/value/continuation_token",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "PreconditionFailed"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-over-1000",
+ "id": "operations/s3-express/copy-source-if-none-match-failed",
"profile": "s3-express",
"lane": "core",
- "purpose": "List more keys than the service's default page of 1,000 by following the continuation token",
+ "purpose": "Report a copy whose source has the ETag in x-amz-copy-source-if-none-match as a failed condition. A copy answers 412 PreconditionFailed where a read answers 304",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "op": "list",
- "prefix": "object-tests/many/"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_none_match": "\"fixture-etag\"",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -153562,7 +194983,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -153570,17 +194991,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/target.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -153603,6 +195032,14 @@
"rule": {
"is": "absent"
}
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
}
],
"allow_headers": [
@@ -153610,24 +195047,20 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 412,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\nPreconditionFailedFixture error"
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
- }
- ]
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -153635,7 +195068,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -153643,7 +195076,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -153654,22 +195087,6 @@
"value": ""
}
},
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/many/"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -153679,22 +195096,112 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -153702,18 +195209,66 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5",
"date": {
"from": "now"
},
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=10001000trueCRC64NVME"fixture-6d610000"object-tests/many/00002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610001"object-tests/many/00012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610002"object-tests/many/00022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610003"object-tests/many/00032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610004"object-tests/many/00042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610005"object-tests/many/00052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610006"object-tests/many/00062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610007"object-tests/many/00072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610008"object-tests/many/00082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610009"object-tests/many/00092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000a"object-tests/many/00102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000b"object-tests/many/00112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000c"object-tests/many/00122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000d"object-tests/many/00132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000e"object-tests/many/00142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000f"object-tests/many/00152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610010"object-tests/many/00162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610011"object-tests/many/00172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610012"object-tests/many/00182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610013"object-tests/many/00192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610014"object-tests/many/00202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610015"object-tests/many/00212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610016"object-tests/many/00222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610017"object-tests/many/00232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610018"object-tests/many/00242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610019"object-tests/many/00252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001a"object-tests/many/00262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001b"object-tests/many/00272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001c"object-tests/many/00282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001d"object-tests/many/00292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001e"object-tests/many/00302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001f"object-tests/many/00312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610020"object-tests/many/00322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610021"object-tests/many/00332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610022"object-tests/many/00342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610023"object-tests/many/00352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610024"object-tests/many/00362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610025"object-tests/many/00372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610026"object-tests/many/00382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610027"object-tests/many/00392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610028"object-tests/many/00402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610029"object-tests/many/00412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002a"object-tests/many/00422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002b"object-tests/many/00432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002c"object-tests/many/00442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002d"object-tests/many/00452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002e"object-tests/many/00462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002f"object-tests/many/00472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610030"object-tests/many/00482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610031"object-tests/many/00492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610032"object-tests/many/00502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610033"object-tests/many/00512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610034"object-tests/many/00522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610035"object-tests/many/00532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610036"object-tests/many/00542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610037"object-tests/many/00552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610038"object-tests/many/00562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610039"object-tests/many/00572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003a"object-tests/many/00582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003b"object-tests/many/00592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003c"object-tests/many/00602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003d"object-tests/many/00612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003e"object-tests/many/00622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003f"object-tests/many/00632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610040"object-tests/many/00642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610041"object-tests/many/00652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610042"object-tests/many/00662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610043"object-tests/many/00672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610044"object-tests/many/00682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610045"object-tests/many/00692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610046"object-tests/many/00702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610047"object-tests/many/00712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610048"object-tests/many/00722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610049"object-tests/many/00732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004a"object-tests/many/00742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004b"object-tests/many/00752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004c"object-tests/many/00762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004d"object-tests/many/00772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004e"object-tests/many/00782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004f"object-tests/many/00792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610050"object-tests/many/00802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610051"object-tests/many/00812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610052"object-tests/many/00822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610053"object-tests/many/00832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610054"object-tests/many/00842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610055"object-tests/many/00852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610056"object-tests/many/00862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610057"object-tests/many/00872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610058"object-tests/many/00882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610059"object-tests/many/00892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005a"object-tests/many/00902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005b"object-tests/many/00912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005c"object-tests/many/00922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005d"object-tests/many/00932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005e"object-tests/many/00942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005f"object-tests/many/00952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610060"object-tests/many/00962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610061"object-tests/many/00972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610062"object-tests/many/00982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610063"object-tests/many/00992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610064"object-tests/many/01002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610065"object-tests/many/01012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610066"object-tests/many/01022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610067"object-tests/many/01032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610068"object-tests/many/01042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610069"object-tests/many/01052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006a"object-tests/many/01062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006b"object-tests/many/01072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006c"object-tests/many/01082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006d"object-tests/many/01092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006e"object-tests/many/01102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006f"object-tests/many/01112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610070"object-tests/many/01122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610071"object-tests/many/01132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610072"object-tests/many/01142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610073"object-tests/many/01152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610074"object-tests/many/01162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610075"object-tests/many/01172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610076"object-tests/many/01182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610077"object-tests/many/01192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610078"object-tests/many/01202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610079"object-tests/many/01212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007a"object-tests/many/01222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007b"object-tests/many/01232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007c"object-tests/many/01242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007d"object-tests/many/01252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007e"object-tests/many/01262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007f"object-tests/many/01272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610080"object-tests/many/01282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610081"object-tests/many/01292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610082"object-tests/many/01302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610083"object-tests/many/01312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610084"object-tests/many/01322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610085"object-tests/many/01332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610086"object-tests/many/01342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610087"object-tests/many/01352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610088"object-tests/many/01362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610089"object-tests/many/01372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008a"object-tests/many/01382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008b"object-tests/many/01392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008c"object-tests/many/01402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008d"object-tests/many/01412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008e"object-tests/many/01422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008f"object-tests/many/01432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610090"object-tests/many/01442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610091"object-tests/many/01452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610092"object-tests/many/01462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610093"object-tests/many/01472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610094"object-tests/many/01482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610095"object-tests/many/01492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610096"object-tests/many/01502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610097"object-tests/many/01512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610098"object-tests/many/01522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610099"object-tests/many/01532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009a"object-tests/many/01542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009b"object-tests/many/01552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009c"object-tests/many/01562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009d"object-tests/many/01572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009e"object-tests/many/01582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009f"object-tests/many/01592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a0"object-tests/many/01602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a1"object-tests/many/01612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a2"object-tests/many/01622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a3"object-tests/many/01632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a4"object-tests/many/01642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a5"object-tests/many/01652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a6"object-tests/many/01662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a7"object-tests/many/01672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a8"object-tests/many/01682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a9"object-tests/many/01692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100aa"object-tests/many/01702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ab"object-tests/many/01712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ac"object-tests/many/01722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ad"object-tests/many/01732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ae"object-tests/many/01742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100af"object-tests/many/01752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b0"object-tests/many/01762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b1"object-tests/many/01772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b2"object-tests/many/01782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b3"object-tests/many/01792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b4"object-tests/many/01802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b5"object-tests/many/01812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b6"object-tests/many/01822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b7"object-tests/many/01832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b8"object-tests/many/01842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b9"object-tests/many/01852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ba"object-tests/many/01862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bb"object-tests/many/01872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bc"object-tests/many/01882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bd"object-tests/many/01892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100be"object-tests/many/01902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bf"object-tests/many/01912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c0"object-tests/many/01922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c1"object-tests/many/01932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c2"object-tests/many/01942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c3"object-tests/many/01952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c4"object-tests/many/01962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c5"object-tests/many/01972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c6"object-tests/many/01982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c7"object-tests/many/01992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c8"object-tests/many/02002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c9"object-tests/many/02012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ca"object-tests/many/02022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cb"object-tests/many/02032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cc"object-tests/many/02042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cd"object-tests/many/02052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ce"object-tests/many/02062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cf"object-tests/many/02072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d0"object-tests/many/02082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d1"object-tests/many/02092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d2"object-tests/many/02102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d3"object-tests/many/02112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d4"object-tests/many/02122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d5"object-tests/many/02132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d6"object-tests/many/02142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d7"object-tests/many/02152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d8"object-tests/many/02162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d9"object-tests/many/02172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100da"object-tests/many/02182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100db"object-tests/many/02192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100dc"object-tests/many/02202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100dd"object-tests/many/02212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100de"object-tests/many/02222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100df"object-tests/many/02232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e0"object-tests/many/02242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e1"object-tests/many/02252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e2"object-tests/many/02262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e3"object-tests/many/02272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e4"object-tests/many/02282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e5"object-tests/many/02292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e6"object-tests/many/02302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e7"object-tests/many/02312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e8"object-tests/many/02322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e9"object-tests/many/02332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ea"object-tests/many/02342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100eb"object-tests/many/02352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ec"object-tests/many/02362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ed"object-tests/many/02372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ee"object-tests/many/02382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ef"object-tests/many/02392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f0"object-tests/many/02402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f1"object-tests/many/02412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f2"object-tests/many/02422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f3"object-tests/many/02432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f4"object-tests/many/02442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f5"object-tests/many/02452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f6"object-tests/many/02462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f7"object-tests/many/02472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f8"object-tests/many/02482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f9"object-tests/many/02492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fa"object-tests/many/02502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fb"object-tests/many/02512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fc"object-tests/many/02522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fd"object-tests/many/02532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fe"object-tests/many/02542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ff"object-tests/many/02552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610100"object-tests/many/02562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610101"object-tests/many/02572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610102"object-tests/many/02582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610103"object-tests/many/02592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610104"object-tests/many/02602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610105"object-tests/many/02612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610106"object-tests/many/02622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610107"object-tests/many/02632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610108"object-tests/many/02642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610109"object-tests/many/02652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010a"object-tests/many/02662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010b"object-tests/many/02672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010c"object-tests/many/02682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010d"object-tests/many/02692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010e"object-tests/many/02702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010f"object-tests/many/02712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610110"object-tests/many/02722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610111"object-tests/many/02732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610112"object-tests/many/02742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610113"object-tests/many/02752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610114"object-tests/many/02762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610115"object-tests/many/02772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610116"object-tests/many/02782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610117"object-tests/many/02792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610118"object-tests/many/02802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610119"object-tests/many/02812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011a"object-tests/many/02822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011b"object-tests/many/02832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011c"object-tests/many/02842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011d"object-tests/many/02852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011e"object-tests/many/02862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011f"object-tests/many/02872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610120"object-tests/many/02882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610121"object-tests/many/02892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610122"object-tests/many/02902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610123"object-tests/many/02912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610124"object-tests/many/02922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610125"object-tests/many/02932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610126"object-tests/many/02942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610127"object-tests/many/02952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610128"object-tests/many/02962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610129"object-tests/many/02972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012a"object-tests/many/02982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012b"object-tests/many/02992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012c"object-tests/many/03002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012d"object-tests/many/03012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012e"object-tests/many/03022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012f"object-tests/many/03032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610130"object-tests/many/03042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610131"object-tests/many/03052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610132"object-tests/many/03062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610133"object-tests/many/03072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610134"object-tests/many/03082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610135"object-tests/many/03092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610136"object-tests/many/03102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610137"object-tests/many/03112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610138"object-tests/many/03122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610139"object-tests/many/03132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013a"object-tests/many/03142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013b"object-tests/many/03152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013c"object-tests/many/03162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013d"object-tests/many/03172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013e"object-tests/many/03182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013f"object-tests/many/03192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610140"object-tests/many/03202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610141"object-tests/many/03212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610142"object-tests/many/03222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610143"object-tests/many/03232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610144"object-tests/many/03242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610145"object-tests/many/03252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610146"object-tests/many/03262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610147"object-tests/many/03272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610148"object-tests/many/03282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610149"object-tests/many/03292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014a"object-tests/many/03302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014b"object-tests/many/03312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014c"object-tests/many/03322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014d"object-tests/many/03332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014e"object-tests/many/03342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014f"object-tests/many/03352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610150"object-tests/many/03362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610151"object-tests/many/03372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610152"object-tests/many/03382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610153"object-tests/many/03392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610154"object-tests/many/03402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610155"object-tests/many/03412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610156"object-tests/many/03422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610157"object-tests/many/03432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610158"object-tests/many/03442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610159"object-tests/many/03452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015a"object-tests/many/03462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015b"object-tests/many/03472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015c"object-tests/many/03482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015d"object-tests/many/03492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015e"object-tests/many/03502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015f"object-tests/many/03512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610160"object-tests/many/03522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610161"object-tests/many/03532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610162"object-tests/many/03542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610163"object-tests/many/03552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610164"object-tests/many/03562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610165"object-tests/many/03572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610166"object-tests/many/03582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610167"object-tests/many/03592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610168"object-tests/many/03602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610169"object-tests/many/03612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016a"object-tests/many/03622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016b"object-tests/many/03632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016c"object-tests/many/03642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016d"object-tests/many/03652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016e"object-tests/many/03662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016f"object-tests/many/03672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610170"object-tests/many/03682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610171"object-tests/many/03692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610172"object-tests/many/03702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610173"object-tests/many/03712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610174"object-tests/many/03722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610175"object-tests/many/03732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610176"object-tests/many/03742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610177"object-tests/many/03752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610178"object-tests/many/03762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610179"object-tests/many/03772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017a"object-tests/many/03782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017b"object-tests/many/03792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017c"object-tests/many/03802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017d"object-tests/many/03812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017e"object-tests/many/03822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017f"object-tests/many/03832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610180"object-tests/many/03842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610181"object-tests/many/03852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610182"object-tests/many/03862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610183"object-tests/many/03872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610184"object-tests/many/03882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610185"object-tests/many/03892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610186"object-tests/many/03902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610187"object-tests/many/03912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610188"object-tests/many/03922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610189"object-tests/many/03932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018a"object-tests/many/03942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018b"object-tests/many/03952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018c"object-tests/many/03962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018d"object-tests/many/03972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018e"object-tests/many/03982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018f"object-tests/many/03992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610190"object-tests/many/04002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610191"object-tests/many/04012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610192"object-tests/many/04022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610193"object-tests/many/04032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610194"object-tests/many/04042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610195"object-tests/many/04052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610196"object-tests/many/04062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610197"object-tests/many/04072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610198"object-tests/many/04082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610199"object-tests/many/04092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019a"object-tests/many/04102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019b"object-tests/many/04112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019c"object-tests/many/04122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019d"object-tests/many/04132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019e"object-tests/many/04142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019f"object-tests/many/04152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a0"object-tests/many/04162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a1"object-tests/many/04172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a2"object-tests/many/04182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a3"object-tests/many/04192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a4"object-tests/many/04202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a5"object-tests/many/04212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a6"object-tests/many/04222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a7"object-tests/many/04232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a8"object-tests/many/04242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a9"object-tests/many/04252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101aa"object-tests/many/04262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ab"object-tests/many/04272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ac"object-tests/many/04282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ad"object-tests/many/04292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ae"object-tests/many/04302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101af"object-tests/many/04312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b0"object-tests/many/04322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b1"object-tests/many/04332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b2"object-tests/many/04342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b3"object-tests/many/04352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b4"object-tests/many/04362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b5"object-tests/many/04372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b6"object-tests/many/04382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b7"object-tests/many/04392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b8"object-tests/many/04402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b9"object-tests/many/04412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ba"object-tests/many/04422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bb"object-tests/many/04432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bc"object-tests/many/04442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bd"object-tests/many/04452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101be"object-tests/many/04462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bf"object-tests/many/04472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c0"object-tests/many/04482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c1"object-tests/many/04492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c2"object-tests/many/04502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c3"object-tests/many/04512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c4"object-tests/many/04522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c5"object-tests/many/04532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c6"object-tests/many/04542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c7"object-tests/many/04552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c8"object-tests/many/04562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c9"object-tests/many/04572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ca"object-tests/many/04582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cb"object-tests/many/04592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cc"object-tests/many/04602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cd"object-tests/many/04612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ce"object-tests/many/04622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cf"object-tests/many/04632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d0"object-tests/many/04642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d1"object-tests/many/04652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d2"object-tests/many/04662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d3"object-tests/many/04672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d4"object-tests/many/04682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d5"object-tests/many/04692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d6"object-tests/many/04702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d7"object-tests/many/04712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d8"object-tests/many/04722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d9"object-tests/many/04732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101da"object-tests/many/04742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101db"object-tests/many/04752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101dc"object-tests/many/04762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101dd"object-tests/many/04772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101de"object-tests/many/04782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101df"object-tests/many/04792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e0"object-tests/many/04802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e1"object-tests/many/04812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e2"object-tests/many/04822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e3"object-tests/many/04832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e4"object-tests/many/04842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e5"object-tests/many/04852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e6"object-tests/many/04862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e7"object-tests/many/04872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e8"object-tests/many/04882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e9"object-tests/many/04892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ea"object-tests/many/04902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101eb"object-tests/many/04912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ec"object-tests/many/04922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ed"object-tests/many/04932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ee"object-tests/many/04942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ef"object-tests/many/04952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f0"object-tests/many/04962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f1"object-tests/many/04972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f2"object-tests/many/04982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f3"object-tests/many/04992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f4"object-tests/many/05002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f5"object-tests/many/05012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f6"object-tests/many/05022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f7"object-tests/many/05032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f8"object-tests/many/05042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f9"object-tests/many/05052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fa"object-tests/many/05062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fb"object-tests/many/05072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fc"object-tests/many/05082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fd"object-tests/many/05092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fe"object-tests/many/05102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ff"object-tests/many/05112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610200"object-tests/many/05122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610201"object-tests/many/05132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610202"object-tests/many/05142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610203"object-tests/many/05152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610204"object-tests/many/05162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610205"object-tests/many/05172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610206"object-tests/many/05182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610207"object-tests/many/05192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610208"object-tests/many/05202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610209"object-tests/many/05212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020a"object-tests/many/05222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020b"object-tests/many/05232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020c"object-tests/many/05242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020d"object-tests/many/05252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020e"object-tests/many/05262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020f"object-tests/many/05272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610210"object-tests/many/05282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610211"object-tests/many/05292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610212"object-tests/many/05302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610213"object-tests/many/05312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610214"object-tests/many/05322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610215"object-tests/many/05332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610216"object-tests/many/05342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610217"object-tests/many/05352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610218"object-tests/many/05362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610219"object-tests/many/05372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021a"object-tests/many/05382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021b"object-tests/many/05392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021c"object-tests/many/05402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021d"object-tests/many/05412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021e"object-tests/many/05422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021f"object-tests/many/05432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610220"object-tests/many/05442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610221"object-tests/many/05452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610222"object-tests/many/05462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610223"object-tests/many/05472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610224"object-tests/many/05482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610225"object-tests/many/05492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610226"object-tests/many/05502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610227"object-tests/many/05512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610228"object-tests/many/05522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610229"object-tests/many/05532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022a"object-tests/many/05542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022b"object-tests/many/05552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022c"object-tests/many/05562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022d"object-tests/many/05572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022e"object-tests/many/05582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022f"object-tests/many/05592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610230"object-tests/many/05602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610231"object-tests/many/05612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610232"object-tests/many/05622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610233"object-tests/many/05632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610234"object-tests/many/05642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610235"object-tests/many/05652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610236"object-tests/many/05662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610237"object-tests/many/05672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610238"object-tests/many/05682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610239"object-tests/many/05692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023a"object-tests/many/05702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023b"object-tests/many/05712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023c"object-tests/many/05722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023d"object-tests/many/05732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023e"object-tests/many/05742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023f"object-tests/many/05752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610240"object-tests/many/05762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610241"object-tests/many/05772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610242"object-tests/many/05782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610243"object-tests/many/05792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610244"object-tests/many/05802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610245"object-tests/many/05812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610246"object-tests/many/05822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610247"object-tests/many/05832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610248"object-tests/many/05842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610249"object-tests/many/05852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024a"object-tests/many/05862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024b"object-tests/many/05872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024c"object-tests/many/05882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024d"object-tests/many/05892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024e"object-tests/many/05902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024f"object-tests/many/05912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610250"object-tests/many/05922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610251"object-tests/many/05932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610252"object-tests/many/05942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610253"object-tests/many/05952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610254"object-tests/many/05962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610255"object-tests/many/05972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610256"object-tests/many/05982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610257"object-tests/many/05992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610258"object-tests/many/06002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610259"object-tests/many/06012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025a"object-tests/many/06022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025b"object-tests/many/06032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025c"object-tests/many/06042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025d"object-tests/many/06052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025e"object-tests/many/06062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025f"object-tests/many/06072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610260"object-tests/many/06082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610261"object-tests/many/06092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610262"object-tests/many/06102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610263"object-tests/many/06112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610264"object-tests/many/06122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610265"object-tests/many/06132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610266"object-tests/many/06142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610267"object-tests/many/06152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610268"object-tests/many/06162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610269"object-tests/many/06172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026a"object-tests/many/06182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026b"object-tests/many/06192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026c"object-tests/many/06202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026d"object-tests/many/06212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026e"object-tests/many/06222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026f"object-tests/many/06232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610270"object-tests/many/06242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610271"object-tests/many/06252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610272"object-tests/many/06262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610273"object-tests/many/06272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610274"object-tests/many/06282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610275"object-tests/many/06292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610276"object-tests/many/06302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610277"object-tests/many/06312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610278"object-tests/many/06322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610279"object-tests/many/06332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027a"object-tests/many/06342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027b"object-tests/many/06352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027c"object-tests/many/06362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027d"object-tests/many/06372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027e"object-tests/many/06382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027f"object-tests/many/06392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610280"object-tests/many/06402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610281"object-tests/many/06412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610282"object-tests/many/06422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610283"object-tests/many/06432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610284"object-tests/many/06442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610285"object-tests/many/06452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610286"object-tests/many/06462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610287"object-tests/many/06472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610288"object-tests/many/06482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610289"object-tests/many/06492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028a"object-tests/many/06502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028b"object-tests/many/06512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028c"object-tests/many/06522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028d"object-tests/many/06532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028e"object-tests/many/06542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028f"object-tests/many/06552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610290"object-tests/many/06562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610291"object-tests/many/06572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610292"object-tests/many/06582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610293"object-tests/many/06592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610294"object-tests/many/06602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610295"object-tests/many/06612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610296"object-tests/many/06622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610297"object-tests/many/06632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610298"object-tests/many/06642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610299"object-tests/many/06652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029a"object-tests/many/06662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029b"object-tests/many/06672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029c"object-tests/many/06682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029d"object-tests/many/06692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029e"object-tests/many/06702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029f"object-tests/many/06712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a0"object-tests/many/06722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a1"object-tests/many/06732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a2"object-tests/many/06742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a3"object-tests/many/06752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a4"object-tests/many/06762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a5"object-tests/many/06772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a6"object-tests/many/06782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a7"object-tests/many/06792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a8"object-tests/many/06802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a9"object-tests/many/06812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102aa"object-tests/many/06822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ab"object-tests/many/06832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ac"object-tests/many/06842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ad"object-tests/many/06852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ae"object-tests/many/06862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102af"object-tests/many/06872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b0"object-tests/many/06882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b1"object-tests/many/06892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b2"object-tests/many/06902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b3"object-tests/many/06912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b4"object-tests/many/06922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b5"object-tests/many/06932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b6"object-tests/many/06942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b7"object-tests/many/06952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b8"object-tests/many/06962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b9"object-tests/many/06972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ba"object-tests/many/06982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bb"object-tests/many/06992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bc"object-tests/many/07002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bd"object-tests/many/07012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102be"object-tests/many/07022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bf"object-tests/many/07032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c0"object-tests/many/07042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c1"object-tests/many/07052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c2"object-tests/many/07062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c3"object-tests/many/07072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c4"object-tests/many/07082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c5"object-tests/many/07092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c6"object-tests/many/07102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c7"object-tests/many/07112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c8"object-tests/many/07122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c9"object-tests/many/07132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ca"object-tests/many/07142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cb"object-tests/many/07152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cc"object-tests/many/07162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cd"object-tests/many/07172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ce"object-tests/many/07182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cf"object-tests/many/07192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d0"object-tests/many/07202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d1"object-tests/many/07212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d2"object-tests/many/07222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d3"object-tests/many/07232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d4"object-tests/many/07242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d5"object-tests/many/07252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d6"object-tests/many/07262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d7"object-tests/many/07272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d8"object-tests/many/07282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d9"object-tests/many/07292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102da"object-tests/many/07302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102db"object-tests/many/07312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102dc"object-tests/many/07322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102dd"object-tests/many/07332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102de"object-tests/many/07342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102df"object-tests/many/07352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e0"object-tests/many/07362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e1"object-tests/many/07372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e2"object-tests/many/07382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e3"object-tests/many/07392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e4"object-tests/many/07402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e5"object-tests/many/07412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e6"object-tests/many/07422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e7"object-tests/many/07432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e8"object-tests/many/07442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e9"object-tests/many/07452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ea"object-tests/many/07462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102eb"object-tests/many/07472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ec"object-tests/many/07482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ed"object-tests/many/07492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ee"object-tests/many/07502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ef"object-tests/many/07512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f0"object-tests/many/07522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f1"object-tests/many/07532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f2"object-tests/many/07542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f3"object-tests/many/07552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f4"object-tests/many/07562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f5"object-tests/many/07572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f6"object-tests/many/07582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f7"object-tests/many/07592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f8"object-tests/many/07602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f9"object-tests/many/07612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fa"object-tests/many/07622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fb"object-tests/many/07632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fc"object-tests/many/07642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fd"object-tests/many/07652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fe"object-tests/many/07662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ff"object-tests/many/07672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610300"object-tests/many/07682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610301"object-tests/many/07692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610302"object-tests/many/07702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610303"object-tests/many/07712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610304"object-tests/many/07722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610305"object-tests/many/07732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610306"object-tests/many/07742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610307"object-tests/many/07752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610308"object-tests/many/07762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610309"object-tests/many/07772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030a"object-tests/many/07782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030b"object-tests/many/07792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030c"object-tests/many/07802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030d"object-tests/many/07812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030e"object-tests/many/07822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030f"object-tests/many/07832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610310"object-tests/many/07842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610311"object-tests/many/07852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610312"object-tests/many/07862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610313"object-tests/many/07872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610314"object-tests/many/07882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610315"object-tests/many/07892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610316"object-tests/many/07902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610317"object-tests/many/07912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610318"object-tests/many/07922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610319"object-tests/many/07932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031a"object-tests/many/07942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031b"object-tests/many/07952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031c"object-tests/many/07962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031d"object-tests/many/07972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031e"object-tests/many/07982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031f"object-tests/many/07992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610320"object-tests/many/08002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610321"object-tests/many/08012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610322"object-tests/many/08022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610323"object-tests/many/08032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610324"object-tests/many/08042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610325"object-tests/many/08052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610326"object-tests/many/08062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610327"object-tests/many/08072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610328"object-tests/many/08082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610329"object-tests/many/08092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032a"object-tests/many/08102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032b"object-tests/many/08112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032c"object-tests/many/08122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032d"object-tests/many/08132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032e"object-tests/many/08142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032f"object-tests/many/08152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610330"object-tests/many/08162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610331"object-tests/many/08172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610332"object-tests/many/08182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610333"object-tests/many/08192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610334"object-tests/many/08202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610335"object-tests/many/08212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610336"object-tests/many/08222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610337"object-tests/many/08232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610338"object-tests/many/08242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610339"object-tests/many/08252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033a"object-tests/many/08262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033b"object-tests/many/08272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033c"object-tests/many/08282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033d"object-tests/many/08292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033e"object-tests/many/08302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033f"object-tests/many/08312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610340"object-tests/many/08322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610341"object-tests/many/08332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610342"object-tests/many/08342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610343"object-tests/many/08352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610344"object-tests/many/08362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610345"object-tests/many/08372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610346"object-tests/many/08382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610347"object-tests/many/08392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610348"object-tests/many/08402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610349"object-tests/many/08412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034a"object-tests/many/08422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034b"object-tests/many/08432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034c"object-tests/many/08442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034d"object-tests/many/08452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034e"object-tests/many/08462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034f"object-tests/many/08472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610350"object-tests/many/08482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610351"object-tests/many/08492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610352"object-tests/many/08502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610353"object-tests/many/08512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610354"object-tests/many/08522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610355"object-tests/many/08532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610356"object-tests/many/08542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610357"object-tests/many/08552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610358"object-tests/many/08562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610359"object-tests/many/08572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035a"object-tests/many/08582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035b"object-tests/many/08592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035c"object-tests/many/08602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035d"object-tests/many/08612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035e"object-tests/many/08622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035f"object-tests/many/08632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610360"object-tests/many/08642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610361"object-tests/many/08652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610362"object-tests/many/08662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610363"object-tests/many/08672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610364"object-tests/many/08682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610365"object-tests/many/08692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610366"object-tests/many/08702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610367"object-tests/many/08712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610368"object-tests/many/08722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610369"object-tests/many/08732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036a"object-tests/many/08742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036b"object-tests/many/08752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036c"object-tests/many/08762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036d"object-tests/many/08772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036e"object-tests/many/08782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036f"object-tests/many/08792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610370"object-tests/many/08802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610371"object-tests/many/08812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610372"object-tests/many/08822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610373"object-tests/many/08832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610374"object-tests/many/08842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610375"object-tests/many/08852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610376"object-tests/many/08862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610377"object-tests/many/08872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610378"object-tests/many/08882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610379"object-tests/many/08892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037a"object-tests/many/08902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037b"object-tests/many/08912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037c"object-tests/many/08922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037d"object-tests/many/08932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037e"object-tests/many/08942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037f"object-tests/many/08952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610380"object-tests/many/08962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610381"object-tests/many/08972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610382"object-tests/many/08982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610383"object-tests/many/08992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610384"object-tests/many/09002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610385"object-tests/many/09012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610386"object-tests/many/09022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610387"object-tests/many/09032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610388"object-tests/many/09042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610389"object-tests/many/09052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038a"object-tests/many/09062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038b"object-tests/many/09072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038c"object-tests/many/09082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038d"object-tests/many/09092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038e"object-tests/many/09102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038f"object-tests/many/09112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610390"object-tests/many/09122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610391"object-tests/many/09132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610392"object-tests/many/09142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610393"object-tests/many/09152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610394"object-tests/many/09162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610395"object-tests/many/09172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610396"object-tests/many/09182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610397"object-tests/many/09192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610398"object-tests/many/09202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610399"object-tests/many/09212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039a"object-tests/many/09222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039b"object-tests/many/09232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039c"object-tests/many/09242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039d"object-tests/many/09252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039e"object-tests/many/09262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039f"object-tests/many/09272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a0"object-tests/many/09282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a1"object-tests/many/09292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a2"object-tests/many/09302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a3"object-tests/many/09312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a4"object-tests/many/09322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a5"object-tests/many/09332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a6"object-tests/many/09342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a7"object-tests/many/09352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a8"object-tests/many/09362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a9"object-tests/many/09372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103aa"object-tests/many/09382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ab"object-tests/many/09392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ac"object-tests/many/09402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ad"object-tests/many/09412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ae"object-tests/many/09422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103af"object-tests/many/09432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b0"object-tests/many/09442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b1"object-tests/many/09452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b2"object-tests/many/09462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b3"object-tests/many/09472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b4"object-tests/many/09482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b5"object-tests/many/09492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b6"object-tests/many/09502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b7"object-tests/many/09512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b8"object-tests/many/09522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b9"object-tests/many/09532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ba"object-tests/many/09542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bb"object-tests/many/09552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bc"object-tests/many/09562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bd"object-tests/many/09572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103be"object-tests/many/09582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bf"object-tests/many/09592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c0"object-tests/many/09602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c1"object-tests/many/09612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c2"object-tests/many/09622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c3"object-tests/many/09632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c4"object-tests/many/09642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c5"object-tests/many/09652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c6"object-tests/many/09662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c7"object-tests/many/09672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c8"object-tests/many/09682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c9"object-tests/many/09692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ca"object-tests/many/09702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cb"object-tests/many/09712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cc"object-tests/many/09722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cd"object-tests/many/09732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ce"object-tests/many/09742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cf"object-tests/many/09752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d0"object-tests/many/09762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d1"object-tests/many/09772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d2"object-tests/many/09782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d3"object-tests/many/09792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d4"object-tests/many/09802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d5"object-tests/many/09812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d6"object-tests/many/09822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d7"object-tests/many/09832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d8"object-tests/many/09842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d9"object-tests/many/09852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103da"object-tests/many/09862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103db"object-tests/many/09872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103dc"object-tests/many/09882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103dd"object-tests/many/09892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103de"object-tests/many/09902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103df"object-tests/many/09912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e0"object-tests/many/09922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e1"object-tests/many/09932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e2"object-tests/many/09942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e3"object-tests/many/09952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e4"object-tests/many/09962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e5"object-tests/many/09972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e6"object-tests/many/09982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e7"object-tests/many/09992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ "encoding": "empty"
}
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PreconditionFailed"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/copy-source-if-modified-since",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Copy an object only if the source changed after a time, named in x-amz-copy-source-if-modified-since as an HTTP date",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_modified_since": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -153721,7 +195276,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -153729,7 +195284,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/target.txt"
}
},
{
@@ -153741,51 +195296,42 @@
}
},
{
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/many/"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/headers/host",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
"at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "absent"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-copy-source-if-modified-since",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "Mon, 01 Jan 2024 00:00:00 GMT"
}
}
],
@@ -153799,19 +195345,15 @@
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=10001000urltrueCRC64NVME"fixture-6d610000"object-tests/many/00002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610001"object-tests/many/00012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610002"object-tests/many/00022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610003"object-tests/many/00032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610004"object-tests/many/00042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610005"object-tests/many/00052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610006"object-tests/many/00062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610007"object-tests/many/00072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610008"object-tests/many/00082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610009"object-tests/many/00092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000a"object-tests/many/00102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000b"object-tests/many/00112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000c"object-tests/many/00122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000d"object-tests/many/00132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000e"object-tests/many/00142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61000f"object-tests/many/00152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610010"object-tests/many/00162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610011"object-tests/many/00172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610012"object-tests/many/00182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610013"object-tests/many/00192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610014"object-tests/many/00202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610015"object-tests/many/00212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610016"object-tests/many/00222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610017"object-tests/many/00232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610018"object-tests/many/00242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610019"object-tests/many/00252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001a"object-tests/many/00262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001b"object-tests/many/00272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001c"object-tests/many/00282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001d"object-tests/many/00292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001e"object-tests/many/00302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61001f"object-tests/many/00312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610020"object-tests/many/00322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610021"object-tests/many/00332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610022"object-tests/many/00342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610023"object-tests/many/00352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610024"object-tests/many/00362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610025"object-tests/many/00372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610026"object-tests/many/00382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610027"object-tests/many/00392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610028"object-tests/many/00402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610029"object-tests/many/00412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002a"object-tests/many/00422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002b"object-tests/many/00432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002c"object-tests/many/00442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002d"object-tests/many/00452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002e"object-tests/many/00462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61002f"object-tests/many/00472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610030"object-tests/many/00482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610031"object-tests/many/00492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610032"object-tests/many/00502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610033"object-tests/many/00512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610034"object-tests/many/00522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610035"object-tests/many/00532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610036"object-tests/many/00542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610037"object-tests/many/00552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610038"object-tests/many/00562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610039"object-tests/many/00572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003a"object-tests/many/00582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003b"object-tests/many/00592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003c"object-tests/many/00602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003d"object-tests/many/00612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003e"object-tests/many/00622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61003f"object-tests/many/00632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610040"object-tests/many/00642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610041"object-tests/many/00652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610042"object-tests/many/00662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610043"object-tests/many/00672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610044"object-tests/many/00682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610045"object-tests/many/00692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610046"object-tests/many/00702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610047"object-tests/many/00712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610048"object-tests/many/00722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610049"object-tests/many/00732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004a"object-tests/many/00742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004b"object-tests/many/00752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004c"object-tests/many/00762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004d"object-tests/many/00772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004e"object-tests/many/00782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61004f"object-tests/many/00792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610050"object-tests/many/00802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610051"object-tests/many/00812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610052"object-tests/many/00822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610053"object-tests/many/00832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610054"object-tests/many/00842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610055"object-tests/many/00852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610056"object-tests/many/00862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610057"object-tests/many/00872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610058"object-tests/many/00882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610059"object-tests/many/00892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005a"object-tests/many/00902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005b"object-tests/many/00912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005c"object-tests/many/00922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005d"object-tests/many/00932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005e"object-tests/many/00942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61005f"object-tests/many/00952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610060"object-tests/many/00962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610061"object-tests/many/00972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610062"object-tests/many/00982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610063"object-tests/many/00992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610064"object-tests/many/01002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610065"object-tests/many/01012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610066"object-tests/many/01022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610067"object-tests/many/01032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610068"object-tests/many/01042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610069"object-tests/many/01052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006a"object-tests/many/01062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006b"object-tests/many/01072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006c"object-tests/many/01082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006d"object-tests/many/01092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006e"object-tests/many/01102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61006f"object-tests/many/01112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610070"object-tests/many/01122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610071"object-tests/many/01132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610072"object-tests/many/01142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610073"object-tests/many/01152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610074"object-tests/many/01162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610075"object-tests/many/01172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610076"object-tests/many/01182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610077"object-tests/many/01192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610078"object-tests/many/01202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610079"object-tests/many/01212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007a"object-tests/many/01222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007b"object-tests/many/01232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007c"object-tests/many/01242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007d"object-tests/many/01252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007e"object-tests/many/01262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61007f"object-tests/many/01272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610080"object-tests/many/01282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610081"object-tests/many/01292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610082"object-tests/many/01302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610083"object-tests/many/01312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610084"object-tests/many/01322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610085"object-tests/many/01332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610086"object-tests/many/01342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610087"object-tests/many/01352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610088"object-tests/many/01362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610089"object-tests/many/01372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008a"object-tests/many/01382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008b"object-tests/many/01392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008c"object-tests/many/01402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008d"object-tests/many/01412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008e"object-tests/many/01422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61008f"object-tests/many/01432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610090"object-tests/many/01442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610091"object-tests/many/01452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610092"object-tests/many/01462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610093"object-tests/many/01472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610094"object-tests/many/01482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610095"object-tests/many/01492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610096"object-tests/many/01502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610097"object-tests/many/01512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610098"object-tests/many/01522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610099"object-tests/many/01532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009a"object-tests/many/01542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009b"object-tests/many/01552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009c"object-tests/many/01562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009d"object-tests/many/01572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009e"object-tests/many/01582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61009f"object-tests/many/01592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a0"object-tests/many/01602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a1"object-tests/many/01612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a2"object-tests/many/01622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a3"object-tests/many/01632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a4"object-tests/many/01642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a5"object-tests/many/01652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a6"object-tests/many/01662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a7"object-tests/many/01672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a8"object-tests/many/01682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100a9"object-tests/many/01692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100aa"object-tests/many/01702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ab"object-tests/many/01712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ac"object-tests/many/01722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ad"object-tests/many/01732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ae"object-tests/many/01742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100af"object-tests/many/01752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b0"object-tests/many/01762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b1"object-tests/many/01772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b2"object-tests/many/01782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b3"object-tests/many/01792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b4"object-tests/many/01802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b5"object-tests/many/01812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b6"object-tests/many/01822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b7"object-tests/many/01832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b8"object-tests/many/01842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100b9"object-tests/many/01852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ba"object-tests/many/01862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bb"object-tests/many/01872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bc"object-tests/many/01882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bd"object-tests/many/01892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100be"object-tests/many/01902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100bf"object-tests/many/01912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c0"object-tests/many/01922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c1"object-tests/many/01932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c2"object-tests/many/01942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c3"object-tests/many/01952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c4"object-tests/many/01962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c5"object-tests/many/01972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c6"object-tests/many/01982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c7"object-tests/many/01992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c8"object-tests/many/02002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100c9"object-tests/many/02012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ca"object-tests/many/02022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cb"object-tests/many/02032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cc"object-tests/many/02042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cd"object-tests/many/02052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ce"object-tests/many/02062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100cf"object-tests/many/02072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d0"object-tests/many/02082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d1"object-tests/many/02092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d2"object-tests/many/02102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d3"object-tests/many/02112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d4"object-tests/many/02122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d5"object-tests/many/02132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d6"object-tests/many/02142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d7"object-tests/many/02152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d8"object-tests/many/02162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100d9"object-tests/many/02172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100da"object-tests/many/02182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100db"object-tests/many/02192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100dc"object-tests/many/02202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100dd"object-tests/many/02212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100de"object-tests/many/02222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100df"object-tests/many/02232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e0"object-tests/many/02242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e1"object-tests/many/02252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e2"object-tests/many/02262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e3"object-tests/many/02272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e4"object-tests/many/02282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e5"object-tests/many/02292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e6"object-tests/many/02302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e7"object-tests/many/02312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e8"object-tests/many/02322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100e9"object-tests/many/02332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ea"object-tests/many/02342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100eb"object-tests/many/02352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ec"object-tests/many/02362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ed"object-tests/many/02372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ee"object-tests/many/02382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ef"object-tests/many/02392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f0"object-tests/many/02402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f1"object-tests/many/02412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f2"object-tests/many/02422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f3"object-tests/many/02432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f4"object-tests/many/02442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f5"object-tests/many/02452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f6"object-tests/many/02462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f7"object-tests/many/02472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f8"object-tests/many/02482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100f9"object-tests/many/02492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fa"object-tests/many/02502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fb"object-tests/many/02512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fc"object-tests/many/02522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fd"object-tests/many/02532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100fe"object-tests/many/02542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6100ff"object-tests/many/02552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610100"object-tests/many/02562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610101"object-tests/many/02572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610102"object-tests/many/02582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610103"object-tests/many/02592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610104"object-tests/many/02602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610105"object-tests/many/02612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610106"object-tests/many/02622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610107"object-tests/many/02632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610108"object-tests/many/02642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610109"object-tests/many/02652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010a"object-tests/many/02662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010b"object-tests/many/02672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010c"object-tests/many/02682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010d"object-tests/many/02692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010e"object-tests/many/02702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61010f"object-tests/many/02712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610110"object-tests/many/02722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610111"object-tests/many/02732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610112"object-tests/many/02742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610113"object-tests/many/02752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610114"object-tests/many/02762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610115"object-tests/many/02772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610116"object-tests/many/02782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610117"object-tests/many/02792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610118"object-tests/many/02802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610119"object-tests/many/02812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011a"object-tests/many/02822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011b"object-tests/many/02832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011c"object-tests/many/02842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011d"object-tests/many/02852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011e"object-tests/many/02862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61011f"object-tests/many/02872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610120"object-tests/many/02882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610121"object-tests/many/02892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610122"object-tests/many/02902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610123"object-tests/many/02912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610124"object-tests/many/02922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610125"object-tests/many/02932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610126"object-tests/many/02942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610127"object-tests/many/02952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610128"object-tests/many/02962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610129"object-tests/many/02972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012a"object-tests/many/02982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012b"object-tests/many/02992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012c"object-tests/many/03002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012d"object-tests/many/03012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012e"object-tests/many/03022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61012f"object-tests/many/03032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610130"object-tests/many/03042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610131"object-tests/many/03052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610132"object-tests/many/03062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610133"object-tests/many/03072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610134"object-tests/many/03082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610135"object-tests/many/03092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610136"object-tests/many/03102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610137"object-tests/many/03112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610138"object-tests/many/03122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610139"object-tests/many/03132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013a"object-tests/many/03142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013b"object-tests/many/03152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013c"object-tests/many/03162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013d"object-tests/many/03172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013e"object-tests/many/03182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61013f"object-tests/many/03192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610140"object-tests/many/03202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610141"object-tests/many/03212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610142"object-tests/many/03222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610143"object-tests/many/03232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610144"object-tests/many/03242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610145"object-tests/many/03252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610146"object-tests/many/03262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610147"object-tests/many/03272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610148"object-tests/many/03282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610149"object-tests/many/03292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014a"object-tests/many/03302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014b"object-tests/many/03312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014c"object-tests/many/03322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014d"object-tests/many/03332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014e"object-tests/many/03342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61014f"object-tests/many/03352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610150"object-tests/many/03362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610151"object-tests/many/03372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610152"object-tests/many/03382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610153"object-tests/many/03392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610154"object-tests/many/03402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610155"object-tests/many/03412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610156"object-tests/many/03422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610157"object-tests/many/03432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610158"object-tests/many/03442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610159"object-tests/many/03452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015a"object-tests/many/03462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015b"object-tests/many/03472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015c"object-tests/many/03482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015d"object-tests/many/03492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015e"object-tests/many/03502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61015f"object-tests/many/03512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610160"object-tests/many/03522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610161"object-tests/many/03532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610162"object-tests/many/03542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610163"object-tests/many/03552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610164"object-tests/many/03562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610165"object-tests/many/03572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610166"object-tests/many/03582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610167"object-tests/many/03592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610168"object-tests/many/03602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610169"object-tests/many/03612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016a"object-tests/many/03622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016b"object-tests/many/03632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016c"object-tests/many/03642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016d"object-tests/many/03652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016e"object-tests/many/03662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61016f"object-tests/many/03672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610170"object-tests/many/03682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610171"object-tests/many/03692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610172"object-tests/many/03702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610173"object-tests/many/03712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610174"object-tests/many/03722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610175"object-tests/many/03732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610176"object-tests/many/03742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610177"object-tests/many/03752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610178"object-tests/many/03762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610179"object-tests/many/03772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017a"object-tests/many/03782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017b"object-tests/many/03792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017c"object-tests/many/03802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017d"object-tests/many/03812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017e"object-tests/many/03822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61017f"object-tests/many/03832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610180"object-tests/many/03842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610181"object-tests/many/03852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610182"object-tests/many/03862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610183"object-tests/many/03872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610184"object-tests/many/03882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610185"object-tests/many/03892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610186"object-tests/many/03902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610187"object-tests/many/03912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610188"object-tests/many/03922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610189"object-tests/many/03932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018a"object-tests/many/03942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018b"object-tests/many/03952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018c"object-tests/many/03962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018d"object-tests/many/03972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018e"object-tests/many/03982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61018f"object-tests/many/03992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610190"object-tests/many/04002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610191"object-tests/many/04012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610192"object-tests/many/04022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610193"object-tests/many/04032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610194"object-tests/many/04042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610195"object-tests/many/04052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610196"object-tests/many/04062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610197"object-tests/many/04072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610198"object-tests/many/04082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610199"object-tests/many/04092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019a"object-tests/many/04102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019b"object-tests/many/04112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019c"object-tests/many/04122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019d"object-tests/many/04132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019e"object-tests/many/04142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61019f"object-tests/many/04152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a0"object-tests/many/04162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a1"object-tests/many/04172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a2"object-tests/many/04182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a3"object-tests/many/04192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a4"object-tests/many/04202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a5"object-tests/many/04212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a6"object-tests/many/04222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a7"object-tests/many/04232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a8"object-tests/many/04242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101a9"object-tests/many/04252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101aa"object-tests/many/04262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ab"object-tests/many/04272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ac"object-tests/many/04282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ad"object-tests/many/04292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ae"object-tests/many/04302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101af"object-tests/many/04312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b0"object-tests/many/04322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b1"object-tests/many/04332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b2"object-tests/many/04342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b3"object-tests/many/04352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b4"object-tests/many/04362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b5"object-tests/many/04372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b6"object-tests/many/04382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b7"object-tests/many/04392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b8"object-tests/many/04402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101b9"object-tests/many/04412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ba"object-tests/many/04422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bb"object-tests/many/04432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bc"object-tests/many/04442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bd"object-tests/many/04452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101be"object-tests/many/04462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101bf"object-tests/many/04472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c0"object-tests/many/04482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c1"object-tests/many/04492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c2"object-tests/many/04502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c3"object-tests/many/04512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c4"object-tests/many/04522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c5"object-tests/many/04532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c6"object-tests/many/04542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c7"object-tests/many/04552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c8"object-tests/many/04562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101c9"object-tests/many/04572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ca"object-tests/many/04582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cb"object-tests/many/04592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cc"object-tests/many/04602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cd"object-tests/many/04612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ce"object-tests/many/04622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101cf"object-tests/many/04632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d0"object-tests/many/04642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d1"object-tests/many/04652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d2"object-tests/many/04662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d3"object-tests/many/04672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d4"object-tests/many/04682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d5"object-tests/many/04692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d6"object-tests/many/04702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d7"object-tests/many/04712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d8"object-tests/many/04722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101d9"object-tests/many/04732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101da"object-tests/many/04742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101db"object-tests/many/04752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101dc"object-tests/many/04762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101dd"object-tests/many/04772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101de"object-tests/many/04782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101df"object-tests/many/04792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e0"object-tests/many/04802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e1"object-tests/many/04812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e2"object-tests/many/04822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e3"object-tests/many/04832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e4"object-tests/many/04842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e5"object-tests/many/04852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e6"object-tests/many/04862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e7"object-tests/many/04872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e8"object-tests/many/04882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101e9"object-tests/many/04892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ea"object-tests/many/04902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101eb"object-tests/many/04912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ec"object-tests/many/04922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ed"object-tests/many/04932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ee"object-tests/many/04942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ef"object-tests/many/04952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f0"object-tests/many/04962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f1"object-tests/many/04972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f2"object-tests/many/04982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f3"object-tests/many/04992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f4"object-tests/many/05002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f5"object-tests/many/05012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f6"object-tests/many/05022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f7"object-tests/many/05032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f8"object-tests/many/05042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101f9"object-tests/many/05052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fa"object-tests/many/05062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fb"object-tests/many/05072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fc"object-tests/many/05082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fd"object-tests/many/05092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101fe"object-tests/many/05102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6101ff"object-tests/many/05112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610200"object-tests/many/05122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610201"object-tests/many/05132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610202"object-tests/many/05142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610203"object-tests/many/05152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610204"object-tests/many/05162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610205"object-tests/many/05172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610206"object-tests/many/05182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610207"object-tests/many/05192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610208"object-tests/many/05202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610209"object-tests/many/05212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020a"object-tests/many/05222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020b"object-tests/many/05232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020c"object-tests/many/05242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020d"object-tests/many/05252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020e"object-tests/many/05262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61020f"object-tests/many/05272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610210"object-tests/many/05282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610211"object-tests/many/05292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610212"object-tests/many/05302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610213"object-tests/many/05312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610214"object-tests/many/05322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610215"object-tests/many/05332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610216"object-tests/many/05342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610217"object-tests/many/05352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610218"object-tests/many/05362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610219"object-tests/many/05372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021a"object-tests/many/05382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021b"object-tests/many/05392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021c"object-tests/many/05402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021d"object-tests/many/05412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021e"object-tests/many/05422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61021f"object-tests/many/05432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610220"object-tests/many/05442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610221"object-tests/many/05452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610222"object-tests/many/05462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610223"object-tests/many/05472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610224"object-tests/many/05482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610225"object-tests/many/05492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610226"object-tests/many/05502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610227"object-tests/many/05512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610228"object-tests/many/05522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610229"object-tests/many/05532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022a"object-tests/many/05542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022b"object-tests/many/05552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022c"object-tests/many/05562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022d"object-tests/many/05572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022e"object-tests/many/05582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61022f"object-tests/many/05592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610230"object-tests/many/05602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610231"object-tests/many/05612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610232"object-tests/many/05622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610233"object-tests/many/05632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610234"object-tests/many/05642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610235"object-tests/many/05652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610236"object-tests/many/05662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610237"object-tests/many/05672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610238"object-tests/many/05682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610239"object-tests/many/05692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023a"object-tests/many/05702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023b"object-tests/many/05712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023c"object-tests/many/05722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023d"object-tests/many/05732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023e"object-tests/many/05742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61023f"object-tests/many/05752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610240"object-tests/many/05762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610241"object-tests/many/05772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610242"object-tests/many/05782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610243"object-tests/many/05792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610244"object-tests/many/05802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610245"object-tests/many/05812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610246"object-tests/many/05822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610247"object-tests/many/05832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610248"object-tests/many/05842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610249"object-tests/many/05852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024a"object-tests/many/05862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024b"object-tests/many/05872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024c"object-tests/many/05882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024d"object-tests/many/05892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024e"object-tests/many/05902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61024f"object-tests/many/05912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610250"object-tests/many/05922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610251"object-tests/many/05932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610252"object-tests/many/05942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610253"object-tests/many/05952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610254"object-tests/many/05962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610255"object-tests/many/05972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610256"object-tests/many/05982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610257"object-tests/many/05992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610258"object-tests/many/06002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610259"object-tests/many/06012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025a"object-tests/many/06022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025b"object-tests/many/06032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025c"object-tests/many/06042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025d"object-tests/many/06052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025e"object-tests/many/06062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61025f"object-tests/many/06072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610260"object-tests/many/06082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610261"object-tests/many/06092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610262"object-tests/many/06102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610263"object-tests/many/06112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610264"object-tests/many/06122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610265"object-tests/many/06132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610266"object-tests/many/06142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610267"object-tests/many/06152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610268"object-tests/many/06162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610269"object-tests/many/06172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026a"object-tests/many/06182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026b"object-tests/many/06192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026c"object-tests/many/06202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026d"object-tests/many/06212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026e"object-tests/many/06222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61026f"object-tests/many/06232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610270"object-tests/many/06242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610271"object-tests/many/06252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610272"object-tests/many/06262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610273"object-tests/many/06272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610274"object-tests/many/06282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610275"object-tests/many/06292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610276"object-tests/many/06302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610277"object-tests/many/06312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610278"object-tests/many/06322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610279"object-tests/many/06332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027a"object-tests/many/06342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027b"object-tests/many/06352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027c"object-tests/many/06362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027d"object-tests/many/06372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027e"object-tests/many/06382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61027f"object-tests/many/06392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610280"object-tests/many/06402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610281"object-tests/many/06412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610282"object-tests/many/06422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610283"object-tests/many/06432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610284"object-tests/many/06442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610285"object-tests/many/06452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610286"object-tests/many/06462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610287"object-tests/many/06472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610288"object-tests/many/06482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610289"object-tests/many/06492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028a"object-tests/many/06502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028b"object-tests/many/06512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028c"object-tests/many/06522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028d"object-tests/many/06532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028e"object-tests/many/06542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61028f"object-tests/many/06552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610290"object-tests/many/06562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610291"object-tests/many/06572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610292"object-tests/many/06582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610293"object-tests/many/06592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610294"object-tests/many/06602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610295"object-tests/many/06612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610296"object-tests/many/06622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610297"object-tests/many/06632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610298"object-tests/many/06642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610299"object-tests/many/06652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029a"object-tests/many/06662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029b"object-tests/many/06672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029c"object-tests/many/06682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029d"object-tests/many/06692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029e"object-tests/many/06702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61029f"object-tests/many/06712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a0"object-tests/many/06722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a1"object-tests/many/06732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a2"object-tests/many/06742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a3"object-tests/many/06752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a4"object-tests/many/06762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a5"object-tests/many/06772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a6"object-tests/many/06782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a7"object-tests/many/06792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a8"object-tests/many/06802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102a9"object-tests/many/06812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102aa"object-tests/many/06822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ab"object-tests/many/06832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ac"object-tests/many/06842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ad"object-tests/many/06852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ae"object-tests/many/06862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102af"object-tests/many/06872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b0"object-tests/many/06882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b1"object-tests/many/06892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b2"object-tests/many/06902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b3"object-tests/many/06912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b4"object-tests/many/06922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b5"object-tests/many/06932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b6"object-tests/many/06942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b7"object-tests/many/06952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b8"object-tests/many/06962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102b9"object-tests/many/06972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ba"object-tests/many/06982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bb"object-tests/many/06992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bc"object-tests/many/07002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bd"object-tests/many/07012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102be"object-tests/many/07022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102bf"object-tests/many/07032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c0"object-tests/many/07042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c1"object-tests/many/07052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c2"object-tests/many/07062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c3"object-tests/many/07072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c4"object-tests/many/07082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c5"object-tests/many/07092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c6"object-tests/many/07102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c7"object-tests/many/07112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c8"object-tests/many/07122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102c9"object-tests/many/07132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ca"object-tests/many/07142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cb"object-tests/many/07152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cc"object-tests/many/07162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cd"object-tests/many/07172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ce"object-tests/many/07182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102cf"object-tests/many/07192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d0"object-tests/many/07202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d1"object-tests/many/07212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d2"object-tests/many/07222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d3"object-tests/many/07232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d4"object-tests/many/07242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d5"object-tests/many/07252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d6"object-tests/many/07262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d7"object-tests/many/07272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d8"object-tests/many/07282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102d9"object-tests/many/07292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102da"object-tests/many/07302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102db"object-tests/many/07312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102dc"object-tests/many/07322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102dd"object-tests/many/07332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102de"object-tests/many/07342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102df"object-tests/many/07352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e0"object-tests/many/07362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e1"object-tests/many/07372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e2"object-tests/many/07382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e3"object-tests/many/07392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e4"object-tests/many/07402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e5"object-tests/many/07412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e6"object-tests/many/07422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e7"object-tests/many/07432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e8"object-tests/many/07442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102e9"object-tests/many/07452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ea"object-tests/many/07462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102eb"object-tests/many/07472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ec"object-tests/many/07482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ed"object-tests/many/07492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ee"object-tests/many/07502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ef"object-tests/many/07512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f0"object-tests/many/07522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f1"object-tests/many/07532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f2"object-tests/many/07542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f3"object-tests/many/07552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f4"object-tests/many/07562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f5"object-tests/many/07572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f6"object-tests/many/07582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f7"object-tests/many/07592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f8"object-tests/many/07602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102f9"object-tests/many/07612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fa"object-tests/many/07622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fb"object-tests/many/07632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fc"object-tests/many/07642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fd"object-tests/many/07652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102fe"object-tests/many/07662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6102ff"object-tests/many/07672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610300"object-tests/many/07682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610301"object-tests/many/07692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610302"object-tests/many/07702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610303"object-tests/many/07712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610304"object-tests/many/07722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610305"object-tests/many/07732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610306"object-tests/many/07742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610307"object-tests/many/07752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610308"object-tests/many/07762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610309"object-tests/many/07772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030a"object-tests/many/07782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030b"object-tests/many/07792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030c"object-tests/many/07802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030d"object-tests/many/07812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030e"object-tests/many/07822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61030f"object-tests/many/07832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610310"object-tests/many/07842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610311"object-tests/many/07852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610312"object-tests/many/07862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610313"object-tests/many/07872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610314"object-tests/many/07882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610315"object-tests/many/07892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610316"object-tests/many/07902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610317"object-tests/many/07912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610318"object-tests/many/07922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610319"object-tests/many/07932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031a"object-tests/many/07942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031b"object-tests/many/07952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031c"object-tests/many/07962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031d"object-tests/many/07972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031e"object-tests/many/07982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61031f"object-tests/many/07992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610320"object-tests/many/08002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610321"object-tests/many/08012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610322"object-tests/many/08022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610323"object-tests/many/08032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610324"object-tests/many/08042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610325"object-tests/many/08052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610326"object-tests/many/08062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610327"object-tests/many/08072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610328"object-tests/many/08082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610329"object-tests/many/08092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032a"object-tests/many/08102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032b"object-tests/many/08112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032c"object-tests/many/08122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032d"object-tests/many/08132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032e"object-tests/many/08142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61032f"object-tests/many/08152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610330"object-tests/many/08162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610331"object-tests/many/08172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610332"object-tests/many/08182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610333"object-tests/many/08192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610334"object-tests/many/08202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610335"object-tests/many/08212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610336"object-tests/many/08222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610337"object-tests/many/08232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610338"object-tests/many/08242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610339"object-tests/many/08252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033a"object-tests/many/08262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033b"object-tests/many/08272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033c"object-tests/many/08282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033d"object-tests/many/08292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033e"object-tests/many/08302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61033f"object-tests/many/08312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610340"object-tests/many/08322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610341"object-tests/many/08332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610342"object-tests/many/08342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610343"object-tests/many/08352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610344"object-tests/many/08362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610345"object-tests/many/08372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610346"object-tests/many/08382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610347"object-tests/many/08392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610348"object-tests/many/08402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610349"object-tests/many/08412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034a"object-tests/many/08422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034b"object-tests/many/08432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034c"object-tests/many/08442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034d"object-tests/many/08452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034e"object-tests/many/08462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61034f"object-tests/many/08472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610350"object-tests/many/08482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610351"object-tests/many/08492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610352"object-tests/many/08502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610353"object-tests/many/08512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610354"object-tests/many/08522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610355"object-tests/many/08532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610356"object-tests/many/08542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610357"object-tests/many/08552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610358"object-tests/many/08562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610359"object-tests/many/08572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035a"object-tests/many/08582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035b"object-tests/many/08592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035c"object-tests/many/08602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035d"object-tests/many/08612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035e"object-tests/many/08622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61035f"object-tests/many/08632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610360"object-tests/many/08642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610361"object-tests/many/08652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610362"object-tests/many/08662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610363"object-tests/many/08672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610364"object-tests/many/08682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610365"object-tests/many/08692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610366"object-tests/many/08702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610367"object-tests/many/08712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610368"object-tests/many/08722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610369"object-tests/many/08732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036a"object-tests/many/08742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036b"object-tests/many/08752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036c"object-tests/many/08762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036d"object-tests/many/08772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036e"object-tests/many/08782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61036f"object-tests/many/08792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610370"object-tests/many/08802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610371"object-tests/many/08812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610372"object-tests/many/08822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610373"object-tests/many/08832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610374"object-tests/many/08842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610375"object-tests/many/08852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610376"object-tests/many/08862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610377"object-tests/many/08872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610378"object-tests/many/08882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610379"object-tests/many/08892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037a"object-tests/many/08902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037b"object-tests/many/08912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037c"object-tests/many/08922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037d"object-tests/many/08932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037e"object-tests/many/08942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61037f"object-tests/many/08952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610380"object-tests/many/08962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610381"object-tests/many/08972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610382"object-tests/many/08982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610383"object-tests/many/08992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610384"object-tests/many/09002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610385"object-tests/many/09012024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610386"object-tests/many/09022024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610387"object-tests/many/09032024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610388"object-tests/many/09042024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610389"object-tests/many/09052024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038a"object-tests/many/09062024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038b"object-tests/many/09072024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038c"object-tests/many/09082024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038d"object-tests/many/09092024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038e"object-tests/many/09102024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61038f"object-tests/many/09112024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610390"object-tests/many/09122024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610391"object-tests/many/09132024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610392"object-tests/many/09142024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610393"object-tests/many/09152024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610394"object-tests/many/09162024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610395"object-tests/many/09172024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610396"object-tests/many/09182024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610397"object-tests/many/09192024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610398"object-tests/many/09202024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d610399"object-tests/many/09212024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039a"object-tests/many/09222024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039b"object-tests/many/09232024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039c"object-tests/many/09242024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039d"object-tests/many/09252024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039e"object-tests/many/09262024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d61039f"object-tests/many/09272024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a0"object-tests/many/09282024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a1"object-tests/many/09292024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a2"object-tests/many/09302024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a3"object-tests/many/09312024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a4"object-tests/many/09322024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a5"object-tests/many/09332024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a6"object-tests/many/09342024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a7"object-tests/many/09352024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a8"object-tests/many/09362024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103a9"object-tests/many/09372024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103aa"object-tests/many/09382024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ab"object-tests/many/09392024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ac"object-tests/many/09402024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ad"object-tests/many/09412024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ae"object-tests/many/09422024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103af"object-tests/many/09432024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b0"object-tests/many/09442024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b1"object-tests/many/09452024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b2"object-tests/many/09462024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b3"object-tests/many/09472024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b4"object-tests/many/09482024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b5"object-tests/many/09492024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b6"object-tests/many/09502024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b7"object-tests/many/09512024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b8"object-tests/many/09522024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103b9"object-tests/many/09532024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ba"object-tests/many/09542024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bb"object-tests/many/09552024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bc"object-tests/many/09562024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bd"object-tests/many/09572024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103be"object-tests/many/09582024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103bf"object-tests/many/09592024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c0"object-tests/many/09602024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c1"object-tests/many/09612024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c2"object-tests/many/09622024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c3"object-tests/many/09632024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c4"object-tests/many/09642024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c5"object-tests/many/09652024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c6"object-tests/many/09662024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c7"object-tests/many/09672024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c8"object-tests/many/09682024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103c9"object-tests/many/09692024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ca"object-tests/many/09702024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cb"object-tests/many/09712024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cc"object-tests/many/09722024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cd"object-tests/many/09732024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103ce"object-tests/many/09742024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103cf"object-tests/many/09752024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d0"object-tests/many/09762024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d1"object-tests/many/09772024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d2"object-tests/many/09782024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d3"object-tests/many/09792024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d4"object-tests/many/09802024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d5"object-tests/many/09812024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d6"object-tests/many/09822024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d7"object-tests/many/09832024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d8"object-tests/many/09842024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103d9"object-tests/many/09852024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103da"object-tests/many/09862024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103db"object-tests/many/09872024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103dc"object-tests/many/09882024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103dd"object-tests/many/09892024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103de"object-tests/many/09902024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103df"object-tests/many/09912024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e0"object-tests/many/09922024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e1"object-tests/many/09932024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e2"object-tests/many/09942024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e3"object-tests/many/09952024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e4"object-tests/many/09962024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e5"object-tests/many/09972024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e6"object-tests/many/09982024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-6d6103e7"object-tests/many/09992024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
- }
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ },
+ "framing": "chunked"
}
- }
- ]
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -153819,7 +195361,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -153827,7 +195369,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -153838,30 +195380,6 @@
"value": ""
}
},
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/many/"
- }
- },
- {
- "at": "/query/continuation-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-marker+/3a4e1000="
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -153871,22 +195389,112 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-modified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -153894,18 +195502,50 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5",
"date": {
"from": "now"
},
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000falseCRC64NVME"fixture-6d6103e8"object-tests/many/10002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ "encoding": "empty"
}
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/copy-source-if-unmodified-since-failed",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Report a copy whose source changed after the time in x-amz-copy-source-if-unmodified-since as a failed condition, 412 PreconditionFailed",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
+ ],
+ "call": {
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_if_unmodified_since": "Mon, 01 Jan 2024 00:00:00 GMT",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -153913,7 +195553,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -153921,7 +195561,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/target.txt"
}
},
{
@@ -153933,51 +195573,96 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-unmodified-since",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/many/"
+ "value": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
}
},
+ "body": {
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
{
- "at": "/query/continuation-token",
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-marker+/3a4e1000="
+ "value": "HEAD"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "/object-tests/copy/source.txt"
}
},
{
- "at": "/headers/host",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "value": ""
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
@@ -153985,10 +195670,108 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-if-unmodified-since",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 412,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -153996,1055 +195779,61 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5",
"date": {
"from": "now"
},
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/many/fixture-marker+/3a4e1000=11000urlfalseCRC64NVME"fixture-6d6103e8"object-tests/many/10002024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
+ "encoding": "empty"
}
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/keys",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": [
- "object-tests/many/0000",
- "object-tests/many/0001",
- "object-tests/many/0002",
- "object-tests/many/0003",
- "object-tests/many/0004",
- "object-tests/many/0005",
- "object-tests/many/0006",
- "object-tests/many/0007",
- "object-tests/many/0008",
- "object-tests/many/0009",
- "object-tests/many/0010",
- "object-tests/many/0011",
- "object-tests/many/0012",
- "object-tests/many/0013",
- "object-tests/many/0014",
- "object-tests/many/0015",
- "object-tests/many/0016",
- "object-tests/many/0017",
- "object-tests/many/0018",
- "object-tests/many/0019",
- "object-tests/many/0020",
- "object-tests/many/0021",
- "object-tests/many/0022",
- "object-tests/many/0023",
- "object-tests/many/0024",
- "object-tests/many/0025",
- "object-tests/many/0026",
- "object-tests/many/0027",
- "object-tests/many/0028",
- "object-tests/many/0029",
- "object-tests/many/0030",
- "object-tests/many/0031",
- "object-tests/many/0032",
- "object-tests/many/0033",
- "object-tests/many/0034",
- "object-tests/many/0035",
- "object-tests/many/0036",
- "object-tests/many/0037",
- "object-tests/many/0038",
- "object-tests/many/0039",
- "object-tests/many/0040",
- "object-tests/many/0041",
- "object-tests/many/0042",
- "object-tests/many/0043",
- "object-tests/many/0044",
- "object-tests/many/0045",
- "object-tests/many/0046",
- "object-tests/many/0047",
- "object-tests/many/0048",
- "object-tests/many/0049",
- "object-tests/many/0050",
- "object-tests/many/0051",
- "object-tests/many/0052",
- "object-tests/many/0053",
- "object-tests/many/0054",
- "object-tests/many/0055",
- "object-tests/many/0056",
- "object-tests/many/0057",
- "object-tests/many/0058",
- "object-tests/many/0059",
- "object-tests/many/0060",
- "object-tests/many/0061",
- "object-tests/many/0062",
- "object-tests/many/0063",
- "object-tests/many/0064",
- "object-tests/many/0065",
- "object-tests/many/0066",
- "object-tests/many/0067",
- "object-tests/many/0068",
- "object-tests/many/0069",
- "object-tests/many/0070",
- "object-tests/many/0071",
- "object-tests/many/0072",
- "object-tests/many/0073",
- "object-tests/many/0074",
- "object-tests/many/0075",
- "object-tests/many/0076",
- "object-tests/many/0077",
- "object-tests/many/0078",
- "object-tests/many/0079",
- "object-tests/many/0080",
- "object-tests/many/0081",
- "object-tests/many/0082",
- "object-tests/many/0083",
- "object-tests/many/0084",
- "object-tests/many/0085",
- "object-tests/many/0086",
- "object-tests/many/0087",
- "object-tests/many/0088",
- "object-tests/many/0089",
- "object-tests/many/0090",
- "object-tests/many/0091",
- "object-tests/many/0092",
- "object-tests/many/0093",
- "object-tests/many/0094",
- "object-tests/many/0095",
- "object-tests/many/0096",
- "object-tests/many/0097",
- "object-tests/many/0098",
- "object-tests/many/0099",
- "object-tests/many/0100",
- "object-tests/many/0101",
- "object-tests/many/0102",
- "object-tests/many/0103",
- "object-tests/many/0104",
- "object-tests/many/0105",
- "object-tests/many/0106",
- "object-tests/many/0107",
- "object-tests/many/0108",
- "object-tests/many/0109",
- "object-tests/many/0110",
- "object-tests/many/0111",
- "object-tests/many/0112",
- "object-tests/many/0113",
- "object-tests/many/0114",
- "object-tests/many/0115",
- "object-tests/many/0116",
- "object-tests/many/0117",
- "object-tests/many/0118",
- "object-tests/many/0119",
- "object-tests/many/0120",
- "object-tests/many/0121",
- "object-tests/many/0122",
- "object-tests/many/0123",
- "object-tests/many/0124",
- "object-tests/many/0125",
- "object-tests/many/0126",
- "object-tests/many/0127",
- "object-tests/many/0128",
- "object-tests/many/0129",
- "object-tests/many/0130",
- "object-tests/many/0131",
- "object-tests/many/0132",
- "object-tests/many/0133",
- "object-tests/many/0134",
- "object-tests/many/0135",
- "object-tests/many/0136",
- "object-tests/many/0137",
- "object-tests/many/0138",
- "object-tests/many/0139",
- "object-tests/many/0140",
- "object-tests/many/0141",
- "object-tests/many/0142",
- "object-tests/many/0143",
- "object-tests/many/0144",
- "object-tests/many/0145",
- "object-tests/many/0146",
- "object-tests/many/0147",
- "object-tests/many/0148",
- "object-tests/many/0149",
- "object-tests/many/0150",
- "object-tests/many/0151",
- "object-tests/many/0152",
- "object-tests/many/0153",
- "object-tests/many/0154",
- "object-tests/many/0155",
- "object-tests/many/0156",
- "object-tests/many/0157",
- "object-tests/many/0158",
- "object-tests/many/0159",
- "object-tests/many/0160",
- "object-tests/many/0161",
- "object-tests/many/0162",
- "object-tests/many/0163",
- "object-tests/many/0164",
- "object-tests/many/0165",
- "object-tests/many/0166",
- "object-tests/many/0167",
- "object-tests/many/0168",
- "object-tests/many/0169",
- "object-tests/many/0170",
- "object-tests/many/0171",
- "object-tests/many/0172",
- "object-tests/many/0173",
- "object-tests/many/0174",
- "object-tests/many/0175",
- "object-tests/many/0176",
- "object-tests/many/0177",
- "object-tests/many/0178",
- "object-tests/many/0179",
- "object-tests/many/0180",
- "object-tests/many/0181",
- "object-tests/many/0182",
- "object-tests/many/0183",
- "object-tests/many/0184",
- "object-tests/many/0185",
- "object-tests/many/0186",
- "object-tests/many/0187",
- "object-tests/many/0188",
- "object-tests/many/0189",
- "object-tests/many/0190",
- "object-tests/many/0191",
- "object-tests/many/0192",
- "object-tests/many/0193",
- "object-tests/many/0194",
- "object-tests/many/0195",
- "object-tests/many/0196",
- "object-tests/many/0197",
- "object-tests/many/0198",
- "object-tests/many/0199",
- "object-tests/many/0200",
- "object-tests/many/0201",
- "object-tests/many/0202",
- "object-tests/many/0203",
- "object-tests/many/0204",
- "object-tests/many/0205",
- "object-tests/many/0206",
- "object-tests/many/0207",
- "object-tests/many/0208",
- "object-tests/many/0209",
- "object-tests/many/0210",
- "object-tests/many/0211",
- "object-tests/many/0212",
- "object-tests/many/0213",
- "object-tests/many/0214",
- "object-tests/many/0215",
- "object-tests/many/0216",
- "object-tests/many/0217",
- "object-tests/many/0218",
- "object-tests/many/0219",
- "object-tests/many/0220",
- "object-tests/many/0221",
- "object-tests/many/0222",
- "object-tests/many/0223",
- "object-tests/many/0224",
- "object-tests/many/0225",
- "object-tests/many/0226",
- "object-tests/many/0227",
- "object-tests/many/0228",
- "object-tests/many/0229",
- "object-tests/many/0230",
- "object-tests/many/0231",
- "object-tests/many/0232",
- "object-tests/many/0233",
- "object-tests/many/0234",
- "object-tests/many/0235",
- "object-tests/many/0236",
- "object-tests/many/0237",
- "object-tests/many/0238",
- "object-tests/many/0239",
- "object-tests/many/0240",
- "object-tests/many/0241",
- "object-tests/many/0242",
- "object-tests/many/0243",
- "object-tests/many/0244",
- "object-tests/many/0245",
- "object-tests/many/0246",
- "object-tests/many/0247",
- "object-tests/many/0248",
- "object-tests/many/0249",
- "object-tests/many/0250",
- "object-tests/many/0251",
- "object-tests/many/0252",
- "object-tests/many/0253",
- "object-tests/many/0254",
- "object-tests/many/0255",
- "object-tests/many/0256",
- "object-tests/many/0257",
- "object-tests/many/0258",
- "object-tests/many/0259",
- "object-tests/many/0260",
- "object-tests/many/0261",
- "object-tests/many/0262",
- "object-tests/many/0263",
- "object-tests/many/0264",
- "object-tests/many/0265",
- "object-tests/many/0266",
- "object-tests/many/0267",
- "object-tests/many/0268",
- "object-tests/many/0269",
- "object-tests/many/0270",
- "object-tests/many/0271",
- "object-tests/many/0272",
- "object-tests/many/0273",
- "object-tests/many/0274",
- "object-tests/many/0275",
- "object-tests/many/0276",
- "object-tests/many/0277",
- "object-tests/many/0278",
- "object-tests/many/0279",
- "object-tests/many/0280",
- "object-tests/many/0281",
- "object-tests/many/0282",
- "object-tests/many/0283",
- "object-tests/many/0284",
- "object-tests/many/0285",
- "object-tests/many/0286",
- "object-tests/many/0287",
- "object-tests/many/0288",
- "object-tests/many/0289",
- "object-tests/many/0290",
- "object-tests/many/0291",
- "object-tests/many/0292",
- "object-tests/many/0293",
- "object-tests/many/0294",
- "object-tests/many/0295",
- "object-tests/many/0296",
- "object-tests/many/0297",
- "object-tests/many/0298",
- "object-tests/many/0299",
- "object-tests/many/0300",
- "object-tests/many/0301",
- "object-tests/many/0302",
- "object-tests/many/0303",
- "object-tests/many/0304",
- "object-tests/many/0305",
- "object-tests/many/0306",
- "object-tests/many/0307",
- "object-tests/many/0308",
- "object-tests/many/0309",
- "object-tests/many/0310",
- "object-tests/many/0311",
- "object-tests/many/0312",
- "object-tests/many/0313",
- "object-tests/many/0314",
- "object-tests/many/0315",
- "object-tests/many/0316",
- "object-tests/many/0317",
- "object-tests/many/0318",
- "object-tests/many/0319",
- "object-tests/many/0320",
- "object-tests/many/0321",
- "object-tests/many/0322",
- "object-tests/many/0323",
- "object-tests/many/0324",
- "object-tests/many/0325",
- "object-tests/many/0326",
- "object-tests/many/0327",
- "object-tests/many/0328",
- "object-tests/many/0329",
- "object-tests/many/0330",
- "object-tests/many/0331",
- "object-tests/many/0332",
- "object-tests/many/0333",
- "object-tests/many/0334",
- "object-tests/many/0335",
- "object-tests/many/0336",
- "object-tests/many/0337",
- "object-tests/many/0338",
- "object-tests/many/0339",
- "object-tests/many/0340",
- "object-tests/many/0341",
- "object-tests/many/0342",
- "object-tests/many/0343",
- "object-tests/many/0344",
- "object-tests/many/0345",
- "object-tests/many/0346",
- "object-tests/many/0347",
- "object-tests/many/0348",
- "object-tests/many/0349",
- "object-tests/many/0350",
- "object-tests/many/0351",
- "object-tests/many/0352",
- "object-tests/many/0353",
- "object-tests/many/0354",
- "object-tests/many/0355",
- "object-tests/many/0356",
- "object-tests/many/0357",
- "object-tests/many/0358",
- "object-tests/many/0359",
- "object-tests/many/0360",
- "object-tests/many/0361",
- "object-tests/many/0362",
- "object-tests/many/0363",
- "object-tests/many/0364",
- "object-tests/many/0365",
- "object-tests/many/0366",
- "object-tests/many/0367",
- "object-tests/many/0368",
- "object-tests/many/0369",
- "object-tests/many/0370",
- "object-tests/many/0371",
- "object-tests/many/0372",
- "object-tests/many/0373",
- "object-tests/many/0374",
- "object-tests/many/0375",
- "object-tests/many/0376",
- "object-tests/many/0377",
- "object-tests/many/0378",
- "object-tests/many/0379",
- "object-tests/many/0380",
- "object-tests/many/0381",
- "object-tests/many/0382",
- "object-tests/many/0383",
- "object-tests/many/0384",
- "object-tests/many/0385",
- "object-tests/many/0386",
- "object-tests/many/0387",
- "object-tests/many/0388",
- "object-tests/many/0389",
- "object-tests/many/0390",
- "object-tests/many/0391",
- "object-tests/many/0392",
- "object-tests/many/0393",
- "object-tests/many/0394",
- "object-tests/many/0395",
- "object-tests/many/0396",
- "object-tests/many/0397",
- "object-tests/many/0398",
- "object-tests/many/0399",
- "object-tests/many/0400",
- "object-tests/many/0401",
- "object-tests/many/0402",
- "object-tests/many/0403",
- "object-tests/many/0404",
- "object-tests/many/0405",
- "object-tests/many/0406",
- "object-tests/many/0407",
- "object-tests/many/0408",
- "object-tests/many/0409",
- "object-tests/many/0410",
- "object-tests/many/0411",
- "object-tests/many/0412",
- "object-tests/many/0413",
- "object-tests/many/0414",
- "object-tests/many/0415",
- "object-tests/many/0416",
- "object-tests/many/0417",
- "object-tests/many/0418",
- "object-tests/many/0419",
- "object-tests/many/0420",
- "object-tests/many/0421",
- "object-tests/many/0422",
- "object-tests/many/0423",
- "object-tests/many/0424",
- "object-tests/many/0425",
- "object-tests/many/0426",
- "object-tests/many/0427",
- "object-tests/many/0428",
- "object-tests/many/0429",
- "object-tests/many/0430",
- "object-tests/many/0431",
- "object-tests/many/0432",
- "object-tests/many/0433",
- "object-tests/many/0434",
- "object-tests/many/0435",
- "object-tests/many/0436",
- "object-tests/many/0437",
- "object-tests/many/0438",
- "object-tests/many/0439",
- "object-tests/many/0440",
- "object-tests/many/0441",
- "object-tests/many/0442",
- "object-tests/many/0443",
- "object-tests/many/0444",
- "object-tests/many/0445",
- "object-tests/many/0446",
- "object-tests/many/0447",
- "object-tests/many/0448",
- "object-tests/many/0449",
- "object-tests/many/0450",
- "object-tests/many/0451",
- "object-tests/many/0452",
- "object-tests/many/0453",
- "object-tests/many/0454",
- "object-tests/many/0455",
- "object-tests/many/0456",
- "object-tests/many/0457",
- "object-tests/many/0458",
- "object-tests/many/0459",
- "object-tests/many/0460",
- "object-tests/many/0461",
- "object-tests/many/0462",
- "object-tests/many/0463",
- "object-tests/many/0464",
- "object-tests/many/0465",
- "object-tests/many/0466",
- "object-tests/many/0467",
- "object-tests/many/0468",
- "object-tests/many/0469",
- "object-tests/many/0470",
- "object-tests/many/0471",
- "object-tests/many/0472",
- "object-tests/many/0473",
- "object-tests/many/0474",
- "object-tests/many/0475",
- "object-tests/many/0476",
- "object-tests/many/0477",
- "object-tests/many/0478",
- "object-tests/many/0479",
- "object-tests/many/0480",
- "object-tests/many/0481",
- "object-tests/many/0482",
- "object-tests/many/0483",
- "object-tests/many/0484",
- "object-tests/many/0485",
- "object-tests/many/0486",
- "object-tests/many/0487",
- "object-tests/many/0488",
- "object-tests/many/0489",
- "object-tests/many/0490",
- "object-tests/many/0491",
- "object-tests/many/0492",
- "object-tests/many/0493",
- "object-tests/many/0494",
- "object-tests/many/0495",
- "object-tests/many/0496",
- "object-tests/many/0497",
- "object-tests/many/0498",
- "object-tests/many/0499",
- "object-tests/many/0500",
- "object-tests/many/0501",
- "object-tests/many/0502",
- "object-tests/many/0503",
- "object-tests/many/0504",
- "object-tests/many/0505",
- "object-tests/many/0506",
- "object-tests/many/0507",
- "object-tests/many/0508",
- "object-tests/many/0509",
- "object-tests/many/0510",
- "object-tests/many/0511",
- "object-tests/many/0512",
- "object-tests/many/0513",
- "object-tests/many/0514",
- "object-tests/many/0515",
- "object-tests/many/0516",
- "object-tests/many/0517",
- "object-tests/many/0518",
- "object-tests/many/0519",
- "object-tests/many/0520",
- "object-tests/many/0521",
- "object-tests/many/0522",
- "object-tests/many/0523",
- "object-tests/many/0524",
- "object-tests/many/0525",
- "object-tests/many/0526",
- "object-tests/many/0527",
- "object-tests/many/0528",
- "object-tests/many/0529",
- "object-tests/many/0530",
- "object-tests/many/0531",
- "object-tests/many/0532",
- "object-tests/many/0533",
- "object-tests/many/0534",
- "object-tests/many/0535",
- "object-tests/many/0536",
- "object-tests/many/0537",
- "object-tests/many/0538",
- "object-tests/many/0539",
- "object-tests/many/0540",
- "object-tests/many/0541",
- "object-tests/many/0542",
- "object-tests/many/0543",
- "object-tests/many/0544",
- "object-tests/many/0545",
- "object-tests/many/0546",
- "object-tests/many/0547",
- "object-tests/many/0548",
- "object-tests/many/0549",
- "object-tests/many/0550",
- "object-tests/many/0551",
- "object-tests/many/0552",
- "object-tests/many/0553",
- "object-tests/many/0554",
- "object-tests/many/0555",
- "object-tests/many/0556",
- "object-tests/many/0557",
- "object-tests/many/0558",
- "object-tests/many/0559",
- "object-tests/many/0560",
- "object-tests/many/0561",
- "object-tests/many/0562",
- "object-tests/many/0563",
- "object-tests/many/0564",
- "object-tests/many/0565",
- "object-tests/many/0566",
- "object-tests/many/0567",
- "object-tests/many/0568",
- "object-tests/many/0569",
- "object-tests/many/0570",
- "object-tests/many/0571",
- "object-tests/many/0572",
- "object-tests/many/0573",
- "object-tests/many/0574",
- "object-tests/many/0575",
- "object-tests/many/0576",
- "object-tests/many/0577",
- "object-tests/many/0578",
- "object-tests/many/0579",
- "object-tests/many/0580",
- "object-tests/many/0581",
- "object-tests/many/0582",
- "object-tests/many/0583",
- "object-tests/many/0584",
- "object-tests/many/0585",
- "object-tests/many/0586",
- "object-tests/many/0587",
- "object-tests/many/0588",
- "object-tests/many/0589",
- "object-tests/many/0590",
- "object-tests/many/0591",
- "object-tests/many/0592",
- "object-tests/many/0593",
- "object-tests/many/0594",
- "object-tests/many/0595",
- "object-tests/many/0596",
- "object-tests/many/0597",
- "object-tests/many/0598",
- "object-tests/many/0599",
- "object-tests/many/0600",
- "object-tests/many/0601",
- "object-tests/many/0602",
- "object-tests/many/0603",
- "object-tests/many/0604",
- "object-tests/many/0605",
- "object-tests/many/0606",
- "object-tests/many/0607",
- "object-tests/many/0608",
- "object-tests/many/0609",
- "object-tests/many/0610",
- "object-tests/many/0611",
- "object-tests/many/0612",
- "object-tests/many/0613",
- "object-tests/many/0614",
- "object-tests/many/0615",
- "object-tests/many/0616",
- "object-tests/many/0617",
- "object-tests/many/0618",
- "object-tests/many/0619",
- "object-tests/many/0620",
- "object-tests/many/0621",
- "object-tests/many/0622",
- "object-tests/many/0623",
- "object-tests/many/0624",
- "object-tests/many/0625",
- "object-tests/many/0626",
- "object-tests/many/0627",
- "object-tests/many/0628",
- "object-tests/many/0629",
- "object-tests/many/0630",
- "object-tests/many/0631",
- "object-tests/many/0632",
- "object-tests/many/0633",
- "object-tests/many/0634",
- "object-tests/many/0635",
- "object-tests/many/0636",
- "object-tests/many/0637",
- "object-tests/many/0638",
- "object-tests/many/0639",
- "object-tests/many/0640",
- "object-tests/many/0641",
- "object-tests/many/0642",
- "object-tests/many/0643",
- "object-tests/many/0644",
- "object-tests/many/0645",
- "object-tests/many/0646",
- "object-tests/many/0647",
- "object-tests/many/0648",
- "object-tests/many/0649",
- "object-tests/many/0650",
- "object-tests/many/0651",
- "object-tests/many/0652",
- "object-tests/many/0653",
- "object-tests/many/0654",
- "object-tests/many/0655",
- "object-tests/many/0656",
- "object-tests/many/0657",
- "object-tests/many/0658",
- "object-tests/many/0659",
- "object-tests/many/0660",
- "object-tests/many/0661",
- "object-tests/many/0662",
- "object-tests/many/0663",
- "object-tests/many/0664",
- "object-tests/many/0665",
- "object-tests/many/0666",
- "object-tests/many/0667",
- "object-tests/many/0668",
- "object-tests/many/0669",
- "object-tests/many/0670",
- "object-tests/many/0671",
- "object-tests/many/0672",
- "object-tests/many/0673",
- "object-tests/many/0674",
- "object-tests/many/0675",
- "object-tests/many/0676",
- "object-tests/many/0677",
- "object-tests/many/0678",
- "object-tests/many/0679",
- "object-tests/many/0680",
- "object-tests/many/0681",
- "object-tests/many/0682",
- "object-tests/many/0683",
- "object-tests/many/0684",
- "object-tests/many/0685",
- "object-tests/many/0686",
- "object-tests/many/0687",
- "object-tests/many/0688",
- "object-tests/many/0689",
- "object-tests/many/0690",
- "object-tests/many/0691",
- "object-tests/many/0692",
- "object-tests/many/0693",
- "object-tests/many/0694",
- "object-tests/many/0695",
- "object-tests/many/0696",
- "object-tests/many/0697",
- "object-tests/many/0698",
- "object-tests/many/0699",
- "object-tests/many/0700",
- "object-tests/many/0701",
- "object-tests/many/0702",
- "object-tests/many/0703",
- "object-tests/many/0704",
- "object-tests/many/0705",
- "object-tests/many/0706",
- "object-tests/many/0707",
- "object-tests/many/0708",
- "object-tests/many/0709",
- "object-tests/many/0710",
- "object-tests/many/0711",
- "object-tests/many/0712",
- "object-tests/many/0713",
- "object-tests/many/0714",
- "object-tests/many/0715",
- "object-tests/many/0716",
- "object-tests/many/0717",
- "object-tests/many/0718",
- "object-tests/many/0719",
- "object-tests/many/0720",
- "object-tests/many/0721",
- "object-tests/many/0722",
- "object-tests/many/0723",
- "object-tests/many/0724",
- "object-tests/many/0725",
- "object-tests/many/0726",
- "object-tests/many/0727",
- "object-tests/many/0728",
- "object-tests/many/0729",
- "object-tests/many/0730",
- "object-tests/many/0731",
- "object-tests/many/0732",
- "object-tests/many/0733",
- "object-tests/many/0734",
- "object-tests/many/0735",
- "object-tests/many/0736",
- "object-tests/many/0737",
- "object-tests/many/0738",
- "object-tests/many/0739",
- "object-tests/many/0740",
- "object-tests/many/0741",
- "object-tests/many/0742",
- "object-tests/many/0743",
- "object-tests/many/0744",
- "object-tests/many/0745",
- "object-tests/many/0746",
- "object-tests/many/0747",
- "object-tests/many/0748",
- "object-tests/many/0749",
- "object-tests/many/0750",
- "object-tests/many/0751",
- "object-tests/many/0752",
- "object-tests/many/0753",
- "object-tests/many/0754",
- "object-tests/many/0755",
- "object-tests/many/0756",
- "object-tests/many/0757",
- "object-tests/many/0758",
- "object-tests/many/0759",
- "object-tests/many/0760",
- "object-tests/many/0761",
- "object-tests/many/0762",
- "object-tests/many/0763",
- "object-tests/many/0764",
- "object-tests/many/0765",
- "object-tests/many/0766",
- "object-tests/many/0767",
- "object-tests/many/0768",
- "object-tests/many/0769",
- "object-tests/many/0770",
- "object-tests/many/0771",
- "object-tests/many/0772",
- "object-tests/many/0773",
- "object-tests/many/0774",
- "object-tests/many/0775",
- "object-tests/many/0776",
- "object-tests/many/0777",
- "object-tests/many/0778",
- "object-tests/many/0779",
- "object-tests/many/0780",
- "object-tests/many/0781",
- "object-tests/many/0782",
- "object-tests/many/0783",
- "object-tests/many/0784",
- "object-tests/many/0785",
- "object-tests/many/0786",
- "object-tests/many/0787",
- "object-tests/many/0788",
- "object-tests/many/0789",
- "object-tests/many/0790",
- "object-tests/many/0791",
- "object-tests/many/0792",
- "object-tests/many/0793",
- "object-tests/many/0794",
- "object-tests/many/0795",
- "object-tests/many/0796",
- "object-tests/many/0797",
- "object-tests/many/0798",
- "object-tests/many/0799",
- "object-tests/many/0800",
- "object-tests/many/0801",
- "object-tests/many/0802",
- "object-tests/many/0803",
- "object-tests/many/0804",
- "object-tests/many/0805",
- "object-tests/many/0806",
- "object-tests/many/0807",
- "object-tests/many/0808",
- "object-tests/many/0809",
- "object-tests/many/0810",
- "object-tests/many/0811",
- "object-tests/many/0812",
- "object-tests/many/0813",
- "object-tests/many/0814",
- "object-tests/many/0815",
- "object-tests/many/0816",
- "object-tests/many/0817",
- "object-tests/many/0818",
- "object-tests/many/0819",
- "object-tests/many/0820",
- "object-tests/many/0821",
- "object-tests/many/0822",
- "object-tests/many/0823",
- "object-tests/many/0824",
- "object-tests/many/0825",
- "object-tests/many/0826",
- "object-tests/many/0827",
- "object-tests/many/0828",
- "object-tests/many/0829",
- "object-tests/many/0830",
- "object-tests/many/0831",
- "object-tests/many/0832",
- "object-tests/many/0833",
- "object-tests/many/0834",
- "object-tests/many/0835",
- "object-tests/many/0836",
- "object-tests/many/0837",
- "object-tests/many/0838",
- "object-tests/many/0839",
- "object-tests/many/0840",
- "object-tests/many/0841",
- "object-tests/many/0842",
- "object-tests/many/0843",
- "object-tests/many/0844",
- "object-tests/many/0845",
- "object-tests/many/0846",
- "object-tests/many/0847",
- "object-tests/many/0848",
- "object-tests/many/0849",
- "object-tests/many/0850",
- "object-tests/many/0851",
- "object-tests/many/0852",
- "object-tests/many/0853",
- "object-tests/many/0854",
- "object-tests/many/0855",
- "object-tests/many/0856",
- "object-tests/many/0857",
- "object-tests/many/0858",
- "object-tests/many/0859",
- "object-tests/many/0860",
- "object-tests/many/0861",
- "object-tests/many/0862",
- "object-tests/many/0863",
- "object-tests/many/0864",
- "object-tests/many/0865",
- "object-tests/many/0866",
- "object-tests/many/0867",
- "object-tests/many/0868",
- "object-tests/many/0869",
- "object-tests/many/0870",
- "object-tests/many/0871",
- "object-tests/many/0872",
- "object-tests/many/0873",
- "object-tests/many/0874",
- "object-tests/many/0875",
- "object-tests/many/0876",
- "object-tests/many/0877",
- "object-tests/many/0878",
- "object-tests/many/0879",
- "object-tests/many/0880",
- "object-tests/many/0881",
- "object-tests/many/0882",
- "object-tests/many/0883",
- "object-tests/many/0884",
- "object-tests/many/0885",
- "object-tests/many/0886",
- "object-tests/many/0887",
- "object-tests/many/0888",
- "object-tests/many/0889",
- "object-tests/many/0890",
- "object-tests/many/0891",
- "object-tests/many/0892",
- "object-tests/many/0893",
- "object-tests/many/0894",
- "object-tests/many/0895",
- "object-tests/many/0896",
- "object-tests/many/0897",
- "object-tests/many/0898",
- "object-tests/many/0899",
- "object-tests/many/0900",
- "object-tests/many/0901",
- "object-tests/many/0902",
- "object-tests/many/0903",
- "object-tests/many/0904",
- "object-tests/many/0905",
- "object-tests/many/0906",
- "object-tests/many/0907",
- "object-tests/many/0908",
- "object-tests/many/0909",
- "object-tests/many/0910",
- "object-tests/many/0911",
- "object-tests/many/0912",
- "object-tests/many/0913",
- "object-tests/many/0914",
- "object-tests/many/0915",
- "object-tests/many/0916",
- "object-tests/many/0917",
- "object-tests/many/0918",
- "object-tests/many/0919",
- "object-tests/many/0920",
- "object-tests/many/0921",
- "object-tests/many/0922",
- "object-tests/many/0923",
- "object-tests/many/0924",
- "object-tests/many/0925",
- "object-tests/many/0926",
- "object-tests/many/0927",
- "object-tests/many/0928",
- "object-tests/many/0929",
- "object-tests/many/0930",
- "object-tests/many/0931",
- "object-tests/many/0932",
- "object-tests/many/0933",
- "object-tests/many/0934",
- "object-tests/many/0935",
- "object-tests/many/0936",
- "object-tests/many/0937",
- "object-tests/many/0938",
- "object-tests/many/0939",
- "object-tests/many/0940",
- "object-tests/many/0941",
- "object-tests/many/0942",
- "object-tests/many/0943",
- "object-tests/many/0944",
- "object-tests/many/0945",
- "object-tests/many/0946",
- "object-tests/many/0947",
- "object-tests/many/0948",
- "object-tests/many/0949",
- "object-tests/many/0950",
- "object-tests/many/0951",
- "object-tests/many/0952",
- "object-tests/many/0953",
- "object-tests/many/0954",
- "object-tests/many/0955",
- "object-tests/many/0956",
- "object-tests/many/0957",
- "object-tests/many/0958",
- "object-tests/many/0959",
- "object-tests/many/0960",
- "object-tests/many/0961",
- "object-tests/many/0962",
- "object-tests/many/0963",
- "object-tests/many/0964",
- "object-tests/many/0965",
- "object-tests/many/0966",
- "object-tests/many/0967",
- "object-tests/many/0968",
- "object-tests/many/0969",
- "object-tests/many/0970",
- "object-tests/many/0971",
- "object-tests/many/0972",
- "object-tests/many/0973",
- "object-tests/many/0974",
- "object-tests/many/0975",
- "object-tests/many/0976",
- "object-tests/many/0977",
- "object-tests/many/0978",
- "object-tests/many/0979",
- "object-tests/many/0980",
- "object-tests/many/0981",
- "object-tests/many/0982",
- "object-tests/many/0983",
- "object-tests/many/0984",
- "object-tests/many/0985",
- "object-tests/many/0986",
- "object-tests/many/0987",
- "object-tests/many/0988",
- "object-tests/many/0989",
- "object-tests/many/0990",
- "object-tests/many/0991",
- "object-tests/many/0992",
- "object-tests/many/0993",
- "object-tests/many/0994",
- "object-tests/many/0995",
- "object-tests/many/0996",
- "object-tests/many/0997",
- "object-tests/many/0998",
- "object-tests/many/0999",
- "object-tests/many/1000"
- ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 412
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PreconditionFailed"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-prefix-special-characters",
+ "id": "operations/s3-express/copy-source-key-encoded",
"profile": "s3-express",
"lane": "core",
- "purpose": "Percent-encode the prefix in the query, a space as %20 and a plus as %2B, and decode the common prefixes of a URL-encoded listing as well as the keys",
+ "purpose": "Copy from a key with a space, +, %, é, ? and #. x-amz-copy-source percent-encodes every byte of the key outside letters, digits, -._~ and /",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "delimiter": "/",
- "op": "list_page",
- "prefix": "object-tests/odd a+b&c=d%é/"
+ "key": "object-tests/copy/target.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/a b+c%é?#.txt"
},
"exchanges": [
{
@@ -155056,7 +195845,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -155064,17 +195853,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/target.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/a%20b%2[Bb]c%25%[Cc]3%[Aa]9%3[Ff]%23\\.txt"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -155106,22 +195903,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
- }
- ]
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -155129,7 +195922,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -155137,7 +195930,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/a b+c%é?#.txt"
}
},
{
@@ -155156,45 +195949,103 @@
"value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
{
"at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/odd a+b&c=d%é/"
+ "is": "absent"
}
- },
+ }
+ ],
+ "then": [
{
- "at": "/query/delimiter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/copy/target.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/a%20b%2[Bb]c%25%[Cc]3%[Aa]9%3[Ff]%23\\.txt"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
}
],
"allow_headers": [
@@ -155204,18 +196055,49 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5",
"date": {
"from": "now"
},
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/odd a+b&c=d%é/21000/falseobject-tests/odd a+b&c=d%é/x.txt2024-01-01T00:00:00.000Z"fixture-6f6464200000"CRC64NVMEFULL_OBJECT1EXPRESS_ONEZONEobject-tests/odd a+b&c=d%é/sub dir+/"
+ "encoding": "empty"
}
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/copy-onto-itself",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Copy an object onto itself without changing it. A directory bucket accepts it, where a general-purpose bucket answers 400 InvalidRequest",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
+ ],
+ "call": {
+ "key": "object-tests/copy/source.txt",
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -155223,7 +196105,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -155231,7 +196113,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -155243,19 +196125,19 @@
}
},
{
- "at": "/headers/host",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
@@ -155263,42 +196145,169 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "HEAD"
}
},
{
- "at": "/query/prefix",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/odd a+b&c=d%é/"
+ "value": "/object-tests/copy/source.txt"
}
},
{
- "at": "/query/delimiter",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": ""
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
}
],
+ "then": [
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/copy/source.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
+ }
+ ],
"allow_headers": [
"content-type"
],
@@ -155306,15 +196315,15 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5",
"date": {
"from": "now"
},
+ "etag": "\"fixture-etag\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/odd+a%2Bb%26c%3Dd%25%C3%A9/21000/urlfalseobject-tests/odd+a%2Bb%26c%3Dd%25%C3%A9/x.txt2024-01-01T00:00:00.000Z"fixture-6f6464200000"CRC64NVMEFULL_OBJECT1EXPRESS_ONEZONEobject-tests/odd+a%2Bb%26c%3Dd%25%C3%A9/sub+dir%2B/"
+ "encoding": "empty"
}
}
}
@@ -155329,111 +196338,25 @@
"is": "equal",
"value": "ok"
}
- },
- {
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/odd a+b&c=d%é/x.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-6f6464200000\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/prefixes/0",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/odd a+b&c=d%é/sub dir+/"
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 1
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-start-after",
+ "id": "operations/s3-express/copy-onto-itself-replace-metadata",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report the NotSupported error that a directory bucket answers to start-after",
+ "purpose": "Copy an object onto itself to replace its metadata, which S3 accepts with x-amz-metadata-directive: REPLACE",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
],
"call": {
- "op": "list_page",
- "prefix": "object-tests/board/",
- "start_after": "object-tests/board/a.txt"
+ "key": "object-tests/copy/source.txt",
+ "metadata": {
+ "colour": "blue"
+ },
+ "op": "copy",
+ "source_key": "object-tests/copy/source.txt"
},
"exchanges": [
{
@@ -155445,7 +196368,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -155453,17 +196376,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/source.txt"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -155486,6 +196417,22 @@
"rule": {
"is": "absent"
}
+ },
+ {
+ "at": "/headers/x-amz-metadata-directive",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "REPLACE"
+ }
+ },
+ {
+ "at": "/headers/x-amz-meta-colour",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blue"
+ }
}
],
"allow_headers": [
@@ -155495,22 +196442,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
- }
- ]
- },
- {
- "alternatives": [
+ },
{
"request": [
{
@@ -155518,7 +196461,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "HEAD"
}
},
{
@@ -155526,7 +196469,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/copy/source.txt"
}
},
{
@@ -155545,45 +196488,119 @@
"value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
{
"at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "is": "absent"
}
- },
+ }
+ ],
+ "then": [
{
- "at": "/query/start-after",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/a.txt"
- }
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/copy/source.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ },
+ {
+ "at": "/headers/x-amz-metadata-directive",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "REPLACE"
+ }
+ },
+ {
+ "at": "/headers/x-amz-meta-colour",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "blue"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
}
],
"allow_headers": [
@@ -155591,20 +196608,55 @@
],
"allow_query": [],
"response": {
- "status": 501,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
+ "content-length": "5",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-etag\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nNotSupportedFixture error"
- },
- "framing": "chunked"
+ "encoding": "empty"
+ }
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/put-with-md5",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Report the 501 NotImplemented that a directory bucket answers to Content-MD5, matching or not",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ ],
+ "call": {
+ "body_base64": "aGVsbG8=",
+ "checksum": {
+ "algorithm": "md5",
+ "value_base64": "XUFAKrxLKna5cZ2REBfFkg=="
+ },
+ "key": "object",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -155624,7 +196676,7 @@
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -155639,52 +196691,101 @@
"value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
{
"at": "/headers/x-amz-s3session-token",
"optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
+ "value": "PUT"
}
},
{
- "at": "/headers/authorization",
+ "at": "/path",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "/object"
}
},
{
- "at": "/query/list-type",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "aGVsbG8="
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/content-md5",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "XUFAKrxLKna5cZ2REBfFkg=="
}
},
{
- "at": "/query/start-after",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/a.txt"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -155702,7 +196803,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nNotSupportedFixture error"
+ "data": "\nNotImplementedThis bucket does not support Content Md5 header.fixturefixture"
},
"framing": "chunked"
}
@@ -155732,25 +196833,28 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "NotSupported"
+ "value": "NotImplemented"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-truncated-without-token",
+ "id": "operations/s3-express/put-md5-mismatch",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report an error when a truncated page carries no continuation token; do not stop early or list from the start again",
+ "purpose": "Report the 501 NotImplemented that a directory bucket answers to Content-MD5, matching or not",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
- "origin": "constructed",
"call": {
- "op": "list",
- "page_size": 2,
- "prefix": "object-tests/board/"
+ "body_base64": "aGVsbG8=",
+ "checksum": {
+ "algorithm": "md5",
+ "value_base64": "K9opmNmw7hl9oUKgRH9nJQ=="
+ },
+ "key": "object",
+ "op": "put"
},
"exchanges": [
{
@@ -155835,7 +196939,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -155843,7 +196947,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object"
}
},
{
@@ -155851,31 +196955,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
- }
- },
- {
- "at": "/query/prefix",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/board/"
+ "value": "aGVsbG8="
}
},
{
- "at": "/query/max-keys",
+ "at": "/headers/content-md5",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "K9opmNmw7hl9oUKgRH9nJQ=="
}
},
{
@@ -155908,20 +196996,71 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 501,
"headers": {
"content-type": "application/xml",
"date": {
"from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/board/22trueCRC64NVME"fixture-626f61720000"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-626f61720001"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
- }
+ "data": "\nNotImplementedThis bucket does not support Content Md5 header.fixturefixture"
+ },
+ "framing": "chunked"
}
- },
+ }
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 501
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "NotImplemented"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/put-with-crc32",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Send an additional checksum in its x-amz-checksum- header; S3 stores it as the object's one checksum, in place of the CRC64NVME it adds to a write without one",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ ],
+ "call": {
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "crc32",
+ "value_base64": "ItMTFg=="
+ },
+ "key": "object-tests/checksums/crc32.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -155941,7 +197080,7 @@
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -155949,35 +197088,92 @@
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml"
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
+ }
+ }
+ ]
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/board/"
+ "value": "PUT"
}
},
{
- "at": "/query/max-keys",
+ "at": "/path",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "/object-tests/checksums/crc32.txt"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "Y2hlY2tzdW0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc32",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ItMTFg=="
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "CRC32"
}
},
{
@@ -156012,16 +197208,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/board/22urltrueCRC64NVME"fixture-626f61720000"object-tests/board/a.txt2024-01-01T00:00:00.000Z8EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-626f61720001"object-tests/board/nested/c.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECT"
- }
+ "encoding": "base64",
+ "data": ""
+ },
+ "framing": "chunked"
}
}
]
@@ -156033,25 +197231,46 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-636b73750000\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/list-encoding-ignored",
+ "id": "operations/s3-express/put-computing-sha256",
"profile": "s3-express",
"lane": "core",
- "purpose": "Read the keys as sent when a service ignores encoding-type=url and the page has no EncodingType; a % that begins no escape is text, as in URL percent-decoding",
+ "purpose": "Compute the SHA256 checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-sha256 or in a trailer of an aws-chunked body",
"sources": [
- "https://github.com/rclone/rclone/tree/master/backend/s3/provider",
- "https://url.spec.whatwg.org/#percent-decode"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
- "origin": "constructed",
"call": {
- "op": "list_page",
- "prefix": "object-tests/percent/"
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "sha256"
+ },
+ "key": "object-tests/checksums/sha256.txt",
+ "op": "put"
},
"exchanges": [
{
@@ -156136,7 +197355,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -156144,7 +197363,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/checksums/sha256.txt"
}
},
{
@@ -156152,23 +197371,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/query/list-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "2"
+ "value": "Y2hlY2tzdW0K"
}
},
{
- "at": "/query/prefix",
- "optional": false,
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
"rule": {
"is": "equal",
- "value": "object-tests/percent/"
+ "value": "SHA256"
}
},
{
@@ -156194,6 +197405,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/x-amz-checksum-sha256",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I="
+ }
}
],
"allow_headers": [
@@ -156203,16 +197422,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/percent/31000falseCRC64NVME"fixture-706572000000"object-tests/percent/%zz.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-706572000001"object-tests/percent/100%-off.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-706572000002"object-tests/percent/50%2024-01-01T00:00:00.000Z3EXPRESS_ONEZONEFULL_OBJECT"
- }
+ "encoding": "base64",
+ "data": ""
+ },
+ "framing": "chunked"
}
},
{
@@ -156222,7 +197443,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -156230,7 +197451,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/checksums/sha256.txt"
}
},
{
@@ -156238,55 +197459,71 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1zaGEyNTY6WUJXanArcXlWOVBZZENUTGtZSjlXTGV2ZWdpUlI4NmJUNDZqeGZ3ZXU5ST0NCg0K"
}
},
{
- "at": "/query/list-type",
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "SHA256"
+ }
+ },
+ {
+ "at": "/headers/host",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/query/prefix",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "object-tests/percent/"
+ "value": "fixture-session-token"
}
},
{
- "at": "/query/encoding-type",
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-content-sha256",
"optional": false,
"rule": {
"is": "equal",
- "value": "url"
+ "value": "STREAMING-UNSIGNED-PAYLOAD-TRAILER"
}
},
{
- "at": "/headers/host",
+ "at": "/headers/content-encoding",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "value": "aws-chunked"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/x-amz-decoded-content-length",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
+ "value": "9"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-trailer",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "x-amz-checksum-sha256"
}
}
],
@@ -156297,16 +197534,18 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
},
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/percent/31000falseCRC64NVME"fixture-706572000000"object-tests/percent/%zz.txt2024-01-01T00:00:00.000Z1EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-706572000001"object-tests/percent/100%-off.txt2024-01-01T00:00:00.000Z2EXPRESS_ONEZONEFULL_OBJECTCRC64NVME"fixture-706572000002"object-tests/percent/50%2024-01-01T00:00:00.000Z3EXPRESS_ONEZONEFULL_OBJECT"
- }
+ "encoding": "base64",
+ "data": ""
+ },
+ "framing": "chunked"
}
}
]
@@ -156322,156 +197561,15 @@
}
},
{
- "at": "/value/entries/0/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/percent/%zz.txt"
- }
- },
- {
- "at": "/value/entries/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/entries/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-706572000000\""
- }
- },
- {
- "at": "/value/entries/0/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/0/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/1/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/percent/100%-off.txt"
- }
- },
- {
- "at": "/value/entries/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/entries/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-706572000001\""
- }
- },
- {
- "at": "/value/entries/1/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- },
- {
- "at": "/value/entries/1/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries/2/key",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "object-tests/percent/50%"
- }
- },
- {
- "at": "/value/entries/2/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 3
- }
- },
- {
- "at": "/value/entries/2/etag",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-706572000002\""
- }
- },
- {
- "at": "/value/entries/2/snapshot",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-636b73750000\""
}
},
{
- "at": "/value/entries/2/version",
+ "at": "/value/version",
"optional": true,
"rule": {
"is": "one_of",
@@ -156480,56 +197578,25 @@
""
]
}
- },
- {
- "at": "/value/entries/2/is_current_version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- false
- ]
- }
- },
- {
- "at": "/value/entries",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 3
- }
- },
- {
- "at": "/value/prefixes",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 0
- }
- },
- {
- "at": "/value/continuation_token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
}
],
"refusal": null
},
{
- "id": "operations/s3-express/put-created-empty",
+ "id": "operations/s3-express/put-with-sha256",
"profile": "s3-express",
"lane": "core",
- "purpose": "put created empty",
+ "purpose": "Send a SHA256 checksum that the caller gives, in x-amz-checksum-sha256",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "body_base64": "",
- "key": "object-tests/write/empty.bin",
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "sha256",
+ "value_base64": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I="
+ },
+ "key": "object-tests/checksums/sha256.txt",
"op": "put"
},
"exchanges": [
@@ -156623,7 +197690,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/write/empty.bin"
+ "value": "/object-tests/checksums/sha256.txt"
}
},
{
@@ -156631,7 +197698,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "Y2hlY2tzdW0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "SHA256"
}
},
{
@@ -156657,6 +197732,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/x-amz-checksum-sha256",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I="
+ }
}
],
"allow_headers": [
@@ -156669,8 +197752,9 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-de1997e62b9b\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
"encoding": "base64",
@@ -156696,7 +197780,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-de1997e62b9b\""
+ "value": "\"fixture-636b73750000\""
}
},
{
@@ -156714,16 +197798,19 @@
"refusal": null
},
{
- "id": "operations/s3-express/put-created",
+ "id": "operations/s3-express/put-computing-sha1",
"profile": "s3-express",
"lane": "core",
- "purpose": "put created",
+ "purpose": "Compute the SHA1 checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-sha1 or in a trailer of an aws-chunked body",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/write/object.txt",
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "sha1"
+ },
+ "key": "object-tests/checksums/sha1.txt",
"op": "put"
},
"exchanges": [
@@ -156817,7 +197904,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/write/object.txt"
+ "value": "/object-tests/checksums/sha1.txt"
}
},
{
@@ -156825,7 +197912,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "Y2hlY2tzdW0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "SHA1"
}
},
{
@@ -156851,6 +197946,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/x-amz-checksum-sha1",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Ll2vAgHd6waKYtXgjaGGV6ssa+k="
+ }
}
],
"allow_headers": [
@@ -156863,8 +197966,121 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-68e2c5df0cb2\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/checksums/sha1.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1zaGExOkxsMnZBZ0hkNndhS1l0WGdqYUdHVjZzc2Eraz0NCg0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "SHA1"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-content-sha256",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "STREAMING-UNSIGNED-PAYLOAD-TRAILER"
+ }
+ },
+ {
+ "at": "/headers/content-encoding",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aws-chunked"
+ }
+ },
+ {
+ "at": "/headers/x-amz-decoded-content-length",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "9"
+ }
+ },
+ {
+ "at": "/headers/x-amz-trailer",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "x-amz-checksum-sha1"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
"encoding": "base64",
@@ -156890,7 +198106,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-68e2c5df0cb2\""
+ "value": "\"fixture-636b73750000\""
}
},
{
@@ -156908,16 +198124,20 @@
"refusal": null
},
{
- "id": "operations/s3-express/put-created-key-question",
+ "id": "operations/s3-express/put-with-sha1",
"profile": "s3-express",
"lane": "core",
- "purpose": "put created, with the key \"question?mark.txt\"",
+ "purpose": "Send a SHA1 checksum that the caller gives, in x-amz-checksum-sha1",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/question?mark.txt",
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "sha1",
+ "value_base64": "Ll2vAgHd6waKYtXgjaGGV6ssa+k="
+ },
+ "key": "object-tests/checksums/sha1.txt",
"op": "put"
},
"exchanges": [
@@ -157011,7 +198231,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/question?mark.txt"
+ "value": "/object-tests/checksums/sha1.txt"
}
},
{
@@ -157019,7 +198239,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "Y2hlY2tzdW0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "SHA1"
}
},
{
@@ -157045,6 +198273,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/x-amz-checksum-sha1",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "Ll2vAgHd6waKYtXgjaGGV6ssa+k="
+ }
}
],
"allow_headers": [
@@ -157057,8 +198293,9 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-68e2c5df0cb2\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
"encoding": "base64",
@@ -157084,7 +198321,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-68e2c5df0cb2\""
+ "value": "\"fixture-636b73750000\""
}
},
{
@@ -157102,16 +198339,19 @@
"refusal": null
},
{
- "id": "operations/s3-express/put-created-key-hash",
+ "id": "operations/s3-express/put-computing-crc64nvme",
"profile": "s3-express",
"lane": "core",
- "purpose": "put created, with the key \"hash#tag.txt\"",
+ "purpose": "Compute the CRC64NVME checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-crc64nvme or in a trailer of an aws-chunked body",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/hash#tag.txt",
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "crc64nvme"
+ },
+ "key": "object-tests/checksums/crc64nvme.txt",
"op": "put"
},
"exchanges": [
@@ -157205,7 +198445,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/hash#tag.txt"
+ "value": "/object-tests/checksums/crc64nvme.txt"
}
},
{
@@ -157213,7 +198453,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "Y2hlY2tzdW0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "CRC64NVME"
}
},
{
@@ -157239,6 +198487,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc64nvme",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "XGkNQVJiTLw="
+ }
}
],
"allow_headers": [
@@ -157251,8 +198507,121 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-68e2c5df0cb2\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/checksums/crc64nvme.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1jcmM2NG52bWU6WEdrTlFWSmlUTHc9DQoNCg=="
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "CRC64NVME"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-content-sha256",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "STREAMING-UNSIGNED-PAYLOAD-TRAILER"
+ }
+ },
+ {
+ "at": "/headers/content-encoding",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aws-chunked"
+ }
+ },
+ {
+ "at": "/headers/x-amz-decoded-content-length",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "9"
+ }
+ },
+ {
+ "at": "/headers/x-amz-trailer",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "x-amz-checksum-crc64nvme"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
"encoding": "base64",
@@ -157278,7 +198647,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-68e2c5df0cb2\""
+ "value": "\"fixture-636b73750000\""
}
},
{
@@ -157296,16 +198665,20 @@
"refusal": null
},
{
- "id": "operations/s3-express/put-created-key-percent",
+ "id": "operations/s3-express/put-with-crc64nvme",
"profile": "s3-express",
"lane": "core",
- "purpose": "put created, with the key \"percent%20.txt\"",
+ "purpose": "Send a CRC64NVME checksum that the caller gives, in x-amz-checksum-crc64nvme",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/percent%20.txt",
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "crc64nvme",
+ "value_base64": "XGkNQVJiTLw="
+ },
+ "key": "object-tests/checksums/crc64nvme.txt",
"op": "put"
},
"exchanges": [
@@ -157399,7 +198772,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/percent%20.txt"
+ "value": "/object-tests/checksums/crc64nvme.txt"
}
},
{
@@ -157407,7 +198780,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "Y2hlY2tzdW0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "CRC64NVME"
}
},
{
@@ -157433,6 +198814,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc64nvme",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "XGkNQVJiTLw="
+ }
}
],
"allow_headers": [
@@ -157445,8 +198834,9 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-68e2c5df0cb2\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
"encoding": "base64",
@@ -157472,7 +198862,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-68e2c5df0cb2\""
+ "value": "\"fixture-636b73750000\""
}
},
{
@@ -157490,16 +198880,19 @@
"refusal": null
},
{
- "id": "operations/s3-express/put-created-key-plus",
+ "id": "operations/s3-express/put-computing-crc32c",
"profile": "s3-express",
"lane": "core",
- "purpose": "put created, with the key \"plus+plus.txt\"",
+ "purpose": "Compute the CRC32C checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-crc32c or in a trailer of an aws-chunked body",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/plus+plus.txt",
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "crc32c"
+ },
+ "key": "object-tests/checksums/crc32c.txt",
"op": "put"
},
"exchanges": [
@@ -157593,7 +198986,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/plus+plus.txt"
+ "value": "/object-tests/checksums/crc32c.txt"
}
},
{
@@ -157601,7 +198994,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "Y2hlY2tzdW0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "CRC32C"
}
},
{
@@ -157627,6 +199028,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc32c",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "6dErUA=="
+ }
}
],
"allow_headers": [
@@ -157639,8 +199048,121 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-68e2c5df0cb2\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/checksums/crc32c.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1jcmMzMmM6NmRFclVBPT0NCg0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "CRC32C"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-content-sha256",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "STREAMING-UNSIGNED-PAYLOAD-TRAILER"
+ }
+ },
+ {
+ "at": "/headers/content-encoding",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aws-chunked"
+ }
+ },
+ {
+ "at": "/headers/x-amz-decoded-content-length",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "9"
+ }
+ },
+ {
+ "at": "/headers/x-amz-trailer",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "x-amz-checksum-crc32c"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
"encoding": "base64",
@@ -157666,7 +199188,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-68e2c5df0cb2\""
+ "value": "\"fixture-636b73750000\""
}
},
{
@@ -157684,16 +199206,20 @@
"refusal": null
},
{
- "id": "operations/s3-express/put-created-key-space",
+ "id": "operations/s3-express/put-with-crc32c",
"profile": "s3-express",
"lane": "core",
- "purpose": "put created, with the key \"space name.txt\"",
+ "purpose": "Send a CRC32C checksum that the caller gives, in x-amz-checksum-crc32c",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/space name.txt",
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "crc32c",
+ "value_base64": "6dErUA=="
+ },
+ "key": "object-tests/checksums/crc32c.txt",
"op": "put"
},
"exchanges": [
@@ -157787,7 +199313,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/space name.txt"
+ "value": "/object-tests/checksums/crc32c.txt"
}
},
{
@@ -157795,7 +199321,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "Y2hlY2tzdW0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "CRC32C"
}
},
{
@@ -157821,6 +199355,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc32c",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "6dErUA=="
+ }
}
],
"allow_headers": [
@@ -157833,8 +199375,9 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-68e2c5df0cb2\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
"encoding": "base64",
@@ -157860,7 +199403,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-68e2c5df0cb2\""
+ "value": "\"fixture-636b73750000\""
}
},
{
@@ -157878,16 +199421,19 @@
"refusal": null
},
{
- "id": "operations/s3-express/put-created-key-non-ascii",
+ "id": "operations/s3-express/put-computing-crc32",
"profile": "s3-express",
"lane": "core",
- "purpose": "put created, with the key \"café/雪.txt\"",
+ "purpose": "Compute the CRC32 checksum of the body and send it, base64 of its big-endian bytes, in x-amz-checksum-crc32 or in a trailer of an aws-chunked body",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/café/雪.txt",
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksum": {
+ "algorithm": "crc32"
+ },
+ "key": "object-tests/checksums/crc32.txt",
"op": "put"
},
"exchanges": [
@@ -157981,7 +199527,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/café/雪.txt"
+ "value": "/object-tests/checksums/crc32.txt"
}
},
{
@@ -157989,7 +199535,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "Y2hlY2tzdW0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "CRC32"
}
},
{
@@ -158015,6 +199569,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc32",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ItMTFg=="
+ }
}
],
"allow_headers": [
@@ -158027,8 +199589,121 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-68e2c5df0cb2\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
+ },
+ "body": {
+ "encoding": "base64",
+ "data": ""
+ },
+ "framing": "chunked"
+ }
+ },
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/checksums/crc32.txt"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "OQ0KY2hlY2tzdW0KDQowDQp4LWFtei1jaGVja3N1bS1jcmMzMjpJdE1URmc9PQ0KDQo="
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "CRC32"
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-session-token"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-content-sha256",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "STREAMING-UNSIGNED-PAYLOAD-TRAILER"
+ }
+ },
+ {
+ "at": "/headers/content-encoding",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "aws-chunked"
+ }
+ },
+ {
+ "at": "/headers/x-amz-decoded-content-length",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "9"
+ }
+ },
+ {
+ "at": "/headers/x-amz-trailer",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "x-amz-checksum-crc32"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "date": {
+ "from": "now"
+ },
+ "etag": "\"fixture-636b73750000\"",
+ "x-amz-checksum-crc32": "ItMTFg==",
+ "x-amz-checksum-type": "FULL_OBJECT"
},
"body": {
"encoding": "base64",
@@ -158054,7 +199729,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-68e2c5df0cb2\""
+ "value": "\"fixture-636b73750000\""
}
},
{
@@ -158072,16 +199747,26 @@
"refusal": null
},
{
- "id": "operations/s3-express/put-created-key-double-slash",
+ "id": "operations/s3-express/put-two-checksums",
"profile": "s3-express",
"lane": "core",
- "purpose": "put created, with the key \"double//slash.txt\"",
+ "purpose": "Report S3's refusal of a write with two additional checksums; S3 keeps one checksum per object and answers 400 InvalidRequest to more than one x-amz-checksum- header",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/double//slash.txt",
+ "body_base64": "Y2hlY2tzdW0K",
+ "checksums": [
+ {
+ "algorithm": "crc32",
+ "value_base64": "ItMTFg=="
+ },
+ {
+ "algorithm": "sha256",
+ "value_base64": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I="
+ }
+ ],
+ "key": "object-tests/checksums/two.txt",
"op": "put"
},
"exchanges": [
@@ -158175,7 +199860,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/double//slash.txt"
+ "value": "/object-tests/checksums/two.txt"
}
},
{
@@ -158183,7 +199868,34 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "Y2hlY2tzdW0K"
+ }
+ },
+ {
+ "at": "/headers/x-amz-checksum-crc32",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ItMTFg=="
+ }
+ },
+ {
+ "at": "/headers/x-amz-checksum-sha256",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I="
+ }
+ },
+ {
+ "at": "/headers/x-amz-sdk-checksum-algorithm",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ "CRC32",
+ "SHA256"
+ ]
}
},
{
@@ -158216,17 +199928,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-68e2c5df0cb2\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nInvalidRequestExpecting a single x-amz-checksum- header. Multiple checksum Types are not allowed.fixturefixture"
},
"framing": "chunked"
}
@@ -158240,42 +199951,81 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-68e2c5df0cb2\""
+ "value": 400
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "InvalidRequest"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "checksums"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidRequest"
+ }
+ }
+ ]
},
{
- "id": "operations/s3-express/put-created-key-trailing-slash",
+ "id": "operations/s3-express/put-internal-error",
"profile": "s3-express",
"lane": "core",
- "purpose": "put created, with the key \"trailing-slash/\"",
+ "purpose": "Report a 500 InternalError answer as an error, after at most 5 retries",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
],
+ "origin": "transient",
"call": {
"body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/keys/trailing-slash/",
+ "key": "object-tests/write/object.txt",
"op": "put"
},
"exchanges": [
@@ -158369,7 +200119,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/trailing-slash/"
+ "value": "/object-tests/write/object.txt"
}
},
{
@@ -158410,69 +200160,22 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 500,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-68e2c5df0cb2\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
- },
- "framing": "chunked"
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-68e2c5df0cb2\""
- }
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ },
+ "framing": "chunked"
+ }
+ }
+ ]
},
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/copy-missing-source",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "Refuse a copy whose source does not exist",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
- ],
- "call": {
- "key": "object-tests/copy/target.txt",
- "op": "copy",
- "source_key": "object-tests/copy/absent.txt"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -158490,7 +200193,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/copy/target.txt"
+ "value": "/object-tests/write/object.txt"
}
},
{
@@ -158498,15 +200201,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-amz-copy-source",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/absent\\.txt"
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -158518,18 +200213,19 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -158538,7 +200234,7 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 500,
"headers": {
"content-type": "application/xml",
"date": {
@@ -158547,11 +200243,16 @@
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchKeyFixture error"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
},
"framing": "chunked"
}
- },
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -158559,7 +200260,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -158567,7 +200268,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/copy/absent.txt"
+ "value": "/object-tests/write/object.txt"
}
},
{
@@ -158575,7 +200276,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -158587,18 +200288,19 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -158607,65 +200309,23 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 500,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
}
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ },
+ "framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
- }
+ ],
+ "optional": true
},
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "one_of",
- "values": [
- "NoSuchKey",
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/copy",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "Copy an object to another key in the same bucket",
- "sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html"
- ],
- "call": {
- "key": "object-tests/copy/target.txt",
- "op": "copy",
- "source_key": "object-tests/copy/source.txt"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -158683,7 +200343,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/copy/target.txt"
+ "value": "/object-tests/write/object.txt"
}
},
{
@@ -158691,15 +200351,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-amz-copy-source",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -158711,18 +200363,19 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -158731,7 +200384,7 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 500,
"headers": {
"content-type": "application/xml",
"date": {
@@ -158740,11 +200393,16 @@
},
"body": {
"encoding": "utf8",
- "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
},
"framing": "chunked"
}
- },
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
{
"request": [
{
@@ -158752,7 +200410,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "PUT"
}
},
{
@@ -158760,7 +200418,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/copy/source.txt"
+ "value": "/object-tests/write/object.txt"
}
},
{
@@ -158768,7 +200426,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -158780,163 +200438,44 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
- "then": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/copy/target.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-amz-copy-source",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
- },
- "framing": "chunked"
- }
- }
- ]
- }
- ],
"allow_headers": [
"content-type"
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 500,
"headers": {
- "content-length": "5",
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "empty"
- }
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ },
+ "framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
+ ],
+ "optional": true
},
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-etag\""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/copy-200-internal-error",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "Report a copy answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
- "sources": [
- "https://repost.aws/knowledge-center/s3-resolve-200-internalerror",
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html",
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html"
- ],
- "origin": "transient",
- "call": {
- "key": "object-tests/copy/target.txt",
- "op": "copy",
- "source_key": "object-tests/copy/source.txt"
- },
- "exchanges": [
{
"alternatives": [
{
@@ -158954,7 +200493,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/copy/target.txt"
+ "value": "/object-tests/write/object.txt"
}
},
{
@@ -158962,15 +200501,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-amz-copy-source",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -158982,18 +200513,19 @@
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "equal",
+ "value": "fixture-session-token"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
}
],
@@ -159002,7 +200534,7 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 500,
"headers": {
"content-type": "application/xml",
"date": {
@@ -159011,11 +200543,60 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
},
"framing": "chunked"
}
- },
+ }
+ ],
+ "optional": true
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 500
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "InternalError"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/put-content-encoding-gzip",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Report the refusal of Content-Encoding: gzip by a directory bucket",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA",
+ "content_encoding": "gzip",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
+ {
+ "alternatives": [
{
"request": [
{
@@ -159023,7 +200604,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "HEAD"
+ "value": "GET"
}
},
{
@@ -159031,11 +200612,11 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/copy/source.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
@@ -159066,89 +200647,6 @@
}
}
],
- "then": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/copy/target.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/x-amz-copy-source",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
- },
- "framing": "chunked"
- }
- }
- ]
- }
- ],
"allow_headers": [
"content-type"
],
@@ -159156,15 +200654,15 @@
"response": {
"status": 200,
"headers": {
- "content-length": "5",
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-etag\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ "content-type": "application/xml"
},
"body": {
- "encoding": "empty"
+ "encoding": "utf8",
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ },
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
}
}
}
@@ -159187,7 +200685,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/copy/target.txt"
+ "value": "/object-tests/write/object.txt"
}
},
{
@@ -159195,23 +200693,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
}
},
{
- "at": "/headers/x-amz-copy-source",
+ "at": "/headers/host",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/headers/host",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "value": "fixture-session-token"
}
},
{
@@ -159219,14 +200717,15 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/content-encoding",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "equal",
+ "value": "gzip"
}
}
],
@@ -159235,7 +200734,7 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 415,
"headers": {
"content-type": "application/xml",
"date": {
@@ -159244,14 +200743,60 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ "data": "\nUnsupportedMediaTypeThis bucket does not support content-encoding: gzip. Only AWS-CHUNKED is supported.fixture"
},
"framing": "chunked"
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 415
+ }
},
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "UnsupportedMediaType"
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/put-content-properties",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "cache_control": "max-age=3600",
+ "content_disposition": "attachment; filename=\"report.txt\"",
+ "content_language": "nl-NL",
+ "content_type": "text/plain; charset=utf-8",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -159261,7 +200806,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -159269,25 +200814,17 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/copy/target.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
- {
- "at": "/headers/x-amz-copy-source",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -159319,20 +200856,19 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
- ],
- "optional": true
+ ]
},
{
"alternatives": [
@@ -159351,7 +200887,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/copy/target.txt"
+ "value": "/object-tests/write/object.txt"
}
},
{
@@ -159359,23 +200895,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/headers/x-amz-copy-source",
+ "at": "/headers/host",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/headers/host",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "value": "fixture-session-token"
}
},
{
@@ -159383,14 +200919,39 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "equal",
+ "value": "text/plain; charset=utf-8"
+ }
+ },
+ {
+ "at": "/headers/content-language",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "nl-NL"
+ }
+ },
+ {
+ "at": "/headers/content-disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename=\"report.txt\""
+ }
+ },
+ {
+ "at": "/headers/cache-control",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "max-age=3600"
}
}
],
@@ -159401,21 +200962,68 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-68e2c5df0cb2\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-68e2c5df0cb2\""
+ }
},
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/put-content-type-non-ascii",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Report a Content-Type with a parameter outside ASCII as an error, or refuse it. A directory bucket refuses a header byte outside ASCII with 400 InvalidRequest, and no encoding of a Content-Type parameter is one every reader decodes",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "content_type": "text/plain; name=\"été.txt\"",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -159425,7 +201033,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -159433,25 +201041,17 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/copy/target.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
- {
- "at": "/headers/x-amz-copy-source",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
- }
- },
{
"at": "/headers/host",
"optional": false,
@@ -159483,20 +201083,19 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
- ],
- "optional": true
+ ]
},
{
"alternatives": [
@@ -159515,7 +201114,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/copy/target.txt"
+ "value": "/object-tests/write/object.txt"
}
},
{
@@ -159523,23 +201122,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
- "at": "/headers/x-amz-copy-source",
+ "at": "/headers/host",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
{
- "at": "/headers/host",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "value": "fixture-session-token"
}
},
{
@@ -159547,14 +201146,15 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "equal",
+ "value": "text/plain; name=\"été.txt\""
}
}
],
@@ -159563,7 +201163,7 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
@@ -159572,13 +201172,12 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ "data": "\nInvalidRequestFixture error"
},
"framing": "chunked"
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -159590,32 +201189,78 @@
"value": "error"
}
},
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
{
"at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "InternalError"
+ "value": "InvalidRequest"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "content_type"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidRequest"
+ }
+ }
+ ]
},
{
- "id": "operations/s3-express/put-with-md5",
+ "id": "operations/s3-express/put-content-disposition-non-ascii",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report the 501 NotImplemented that a directory bucket answers to Content-MD5, matching or not",
+ "purpose": "Write a Content-Disposition whose filename is outside ASCII. A directory bucket refuses a header byte outside ASCII with 400 InvalidRequest, so send an RFC 6266 filename*, which any reader decodes, or refuse the value",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "aGVsbG8=",
- "checksum": {
- "algorithm": "md5",
- "value_base64": "XUFAKrxLKna5cZ2REBfFkg=="
- },
- "key": "object",
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "content_disposition": "attachment; filename=\"été.txt\"",
+ "key": "object-tests/write/object.txt",
"op": "put"
},
"exchanges": [
@@ -159709,7 +201354,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object"
+ "value": "/object-tests/write/object.txt"
}
},
{
@@ -159717,15 +201362,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
- }
- },
- {
- "at": "/headers/content-md5",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "XUFAKrxLKna5cZ2REBfFkg=="
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -159751,6 +201388,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/content-disposition",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "attachment; filename*=UTF-8''%C3%A9t%C3%A9.txt"
+ }
}
],
"allow_headers": [
@@ -159758,16 +201403,17 @@
],
"allow_query": [],
"response": {
- "status": 501,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-68e2c5df0cb2\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nNotImplementedThis bucket does not support Content Md5 header.fixturefixture"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
@@ -159781,43 +201427,84 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 501
+ "value": "\"fixture-68e2c5df0cb2\""
}
},
{
- "at": "/code",
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "NotImplemented"
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "content_disposition"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidRequest"
}
}
- ],
- "refusal": null
+ ]
},
{
- "id": "operations/s3-express/put-md5-mismatch",
+ "id": "operations/s3-express/put-content-type-edge-spaces",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report the 501 NotImplemented that a directory bucket answers to Content-MD5, matching or not",
+ "purpose": "Write a content type with spaces at either end, which HTTP drops, so the service stores it trimmed. A client may refuse it",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "aGVsbG8=",
- "checksum": {
- "algorithm": "md5",
- "value_base64": "K9opmNmw7hl9oUKgRH9nJQ=="
- },
- "key": "object",
+ "body_base64": "MDEyMzQ1Njc4OQ==",
+ "content_type": " text/plain ",
+ "key": "object-tests/write/object.txt",
"op": "put"
},
"exchanges": [
@@ -159911,7 +201598,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object"
+ "value": "/object-tests/write/object.txt"
}
},
{
@@ -159919,15 +201606,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "aGVsbG8="
- }
- },
- {
- "at": "/headers/content-md5",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "K9opmNmw7hl9oUKgRH9nJQ=="
+ "value": "MDEyMzQ1Njc4OQ=="
}
},
{
@@ -159953,6 +201632,14 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
+ },
+ {
+ "at": "/headers/content-type",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "text/plain"
+ }
}
],
"allow_headers": [
@@ -159960,16 +201647,17 @@
],
"allow_query": [],
"response": {
- "status": 501,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-68e2c5df0cb2\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nNotImplementedThis bucket does not support Content Md5 header.fixturefixture"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
@@ -159983,43 +201671,68 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 501
+ "value": "\"fixture-68e2c5df0cb2\""
}
},
{
- "at": "/code",
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
"optional": false,
"rule": {
"is": "equal",
- "value": "NotImplemented"
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "content_type"
}
}
- ],
- "refusal": null
+ ]
},
{
- "id": "operations/s3-express/put-with-crc32",
+ "id": "operations/s3-express/put-if-match-current",
"profile": "s3-express",
"lane": "core",
- "purpose": "Send an additional checksum in its x-amz-checksum- header; S3 stores it as the object's one checksum, in place of the CRC64NVME it adds to a write without one",
+ "purpose": "put if match current",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "Y2hlY2tzdW0K",
- "checksum": {
- "algorithm": "crc32",
- "value_base64": "ItMTFg=="
- },
- "key": "object-tests/checksums/crc32.txt",
+ "body_base64": "cmVwbGFjZWQ=",
+ "if_match": "\"fixture-68e2c5df0cb2\"",
+ "key": "object-tests/write/object.txt",
"op": "put"
},
"exchanges": [
@@ -160113,7 +201826,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/checksums/crc32.txt"
+ "value": "/object-tests/write/object.txt"
}
},
{
@@ -160121,23 +201834,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "Y2hlY2tzdW0K"
+ "value": "cmVwbGFjZWQ="
}
},
{
- "at": "/headers/x-amz-checksum-crc32",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "ItMTFg=="
- }
- },
- {
- "at": "/headers/x-amz-sdk-checksum-algorithm",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": "CRC32"
+ "value": "\"fixture-68e2c5df0cb2\""
}
},
{
@@ -160175,9 +201880,8 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-636b73750000\"",
- "x-amz-checksum-crc32": "ItMTFg==",
- "x-amz-checksum-type": "FULL_OBJECT"
+ "etag": "\"fixture-b4f27b379d0b\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "base64",
@@ -160203,7 +201907,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-636b73750000\""
+ "value": "\"fixture-b4f27b379d0b\""
}
},
{
@@ -160221,26 +201925,17 @@
"refusal": null
},
{
- "id": "operations/s3-express/put-two-checksums",
+ "id": "operations/s3-express/put-if-none-match-missing",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report S3's refusal of a write with two additional checksums; S3 keeps one checksum per object and answers 400 InvalidRequest to more than one x-amz-checksum- header",
+ "purpose": "put if none match missing",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "Y2hlY2tzdW0K",
- "checksums": [
- {
- "algorithm": "crc32",
- "value_base64": "ItMTFg=="
- },
- {
- "algorithm": "sha256",
- "value_base64": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I="
- }
- ],
- "key": "object-tests/checksums/two.txt",
+ "body_base64": "ZnJlc2g=",
+ "if_none_match": "*",
+ "key": "object-tests/write/fresh.txt",
"op": "put"
},
"exchanges": [
@@ -160334,7 +202029,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/checksums/two.txt"
+ "value": "/object-tests/write/fresh.txt"
}
},
{
@@ -160342,34 +202037,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "Y2hlY2tzdW0K"
- }
- },
- {
- "at": "/headers/x-amz-checksum-crc32",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ItMTFg=="
+ "value": "ZnJlc2g="
}
},
{
- "at": "/headers/x-amz-checksum-sha256",
+ "at": "/headers/if-none-match",
"optional": false,
"rule": {
"is": "equal",
- "value": "YBWjp+qyV9PYdCTLkYJ9WLevegiRR86bT46jxfweu9I="
- }
- },
- {
- "at": "/headers/x-amz-sdk-checksum-algorithm",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- "CRC32",
- "SHA256"
- ]
+ "value": "*"
}
},
{
@@ -160402,16 +202078,17 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-fb6dd447625d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidRequestExpecting a single x-amz-checksum- header. Multiple checksum Types are not allowed.fixturefixture"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
@@ -160425,81 +202102,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "InvalidRequest"
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
+ "value": "ok"
}
},
{
- "at": "/parameter",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "checksums"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
+ "value": "\"fixture-fb6dd447625d\""
}
},
{
- "at": "/code",
+ "at": "/value/version",
"optional": true,
"rule": {
- "is": "equal",
- "value": "InvalidRequest"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
- ]
+ ],
+ "refusal": null
},
{
- "id": "operations/s3-express/put-internal-error",
+ "id": "operations/s3-express/put-key-1024",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report a 500 InternalError answer as an error, after at most 5 retries",
+ "purpose": "put key 1024",
"sources": [
- "https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html"
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
- "origin": "transient",
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "key": "object-tests/write/object.txt",
+ "body_base64": "MQ==",
+ "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
"op": "put"
},
"exchanges": [
@@ -160593,7 +202231,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/write/object.txt"
+ "value": "/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
}
},
{
@@ -160601,7 +202239,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "MQ=="
}
},
{
@@ -160634,22 +202272,69 @@
],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ab08da38e9fe\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
},
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-ab08da38e9fe\""
+ }
+ },
+ {
+ "at": "/value/version",
+ "optional": true,
+ "rule": {
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/put-key-1025",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "put key 1025",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "MQ==",
+ "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
+ "op": "put"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -160659,7 +202344,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -160667,15 +202352,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/write/object.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
}
},
{
@@ -160686,95 +202371,19 @@
"value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
{
"at": "/headers/authorization",
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 500,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
- },
- "body": {
- "encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
- },
- "framing": "chunked"
- }
- }
- ],
- "optional": true
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/write/object.txt"
- }
- },
- {
- "at": "/body_base64",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
"at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
@@ -160783,22 +202392,21 @@
],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
- ],
- "optional": true
+ ]
},
{
"alternatives": [
@@ -160817,7 +202425,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/write/object.txt"
+ "value": "/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
}
},
{
@@ -160825,7 +202433,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "MQ=="
}
},
{
@@ -160858,7 +202466,7 @@
],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 400,
"headers": {
"content-type": "application/xml",
"date": {
@@ -160867,14 +202475,98 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ "data": "\nKeyTooLongErrorFixture error"
},
"framing": "chunked"
}
}
- ],
- "optional": true
+ ]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "error"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "KeyTooLongError"
+ }
+ }
+ ],
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "key"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
},
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "KeyTooLongError"
+ }
+ }
+ ]
+ },
+ {
+ "id": "operations/s3-express/put-lost-the-race-to-create",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "put lost the race to create",
+ "sources": [
+ "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ ],
+ "call": {
+ "body_base64": "YW5vdGhlciBvYmplY3Q=",
+ "if_none_match": "*",
+ "key": "object-tests/write/object.txt",
+ "op": "put"
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -160884,7 +202576,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -160892,15 +202584,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/write/object.txt"
+ "value": "/"
}
},
{
- "at": "/body_base64",
+ "at": "/query/session",
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": ""
}
},
{
@@ -160912,19 +202604,18 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/authorization",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
},
{
- "at": "/headers/authorization",
+ "at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "is": "absent"
}
}
],
@@ -160933,22 +202624,21 @@
],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- }
+ "content-type": "application/xml"
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
},
- "framing": "chunked"
+ "body_time": {
+ "text": "SESSION_EXPIRATION",
+ "offset_seconds": 300
+ }
}
}
- ],
- "optional": true
+ ]
},
{
"alternatives": [
@@ -160975,7 +202665,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "YW5vdGhlciBvYmplY3Q="
+ }
+ },
+ {
+ "at": "/headers/if-none-match",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "*"
}
},
{
@@ -161008,7 +202706,7 @@
],
"allow_query": [],
"response": {
- "status": 500,
+ "status": 412,
"headers": {
"content-type": "application/xml",
"date": {
@@ -161017,13 +202715,12 @@
},
"body": {
"encoding": "utf8",
- "data": "\nInternalErrorWe encountered an internal error. Please try again.fixture"
+ "data": "\nPreconditionFailedFixture error"
},
"framing": "chunked"
}
}
- ],
- "optional": true
+ ]
}
],
"expect": [
@@ -161040,7 +202737,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 500
+ "value": 412
}
},
{
@@ -161048,24 +202745,26 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "InternalError"
+ "value": "PreconditionFailed"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/put-content-encoding-gzip",
+ "id": "operations/s3-express/put-metadata-empty-value",
"profile": "s3-express",
"lane": "core",
- "purpose": "Report the refusal of Content-Encoding: gzip by a directory bucket",
+ "purpose": "put metadata empty value",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA",
- "content_encoding": "gzip",
- "key": "object-tests/write/object.txt",
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/empty-value.txt",
+ "metadata": {
+ "empty": ""
+ },
"op": "put"
},
"exchanges": [
@@ -161159,7 +202858,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/write/object.txt"
+ "value": "/object-tests/metadata/empty-value.txt"
}
},
{
@@ -161167,7 +202866,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "H4sIAAAAAAACA0vOzy0oSi0uTk1RyM9TKCgtKsgvTuUCAAHVPIcWAAAA"
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-amz-meta-empty",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
}
},
{
@@ -161193,14 +202900,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/headers/content-encoding",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "gzip"
- }
}
],
"allow_headers": [
@@ -161208,16 +202907,17 @@
],
"allow_query": [],
"response": {
- "status": 415,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-e6096f6fd1ec\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nUnsupportedMediaTypeThis bucket does not support content-encoding: gzip. Only AWS-CHUNKED is supported.fixture"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
@@ -161231,43 +202931,45 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 415
+ "value": "\"fixture-e6096f6fd1ec\""
}
},
{
- "at": "/code",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "UnsupportedMediaType"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/put-content-properties",
+ "id": "operations/s3-express/put-metadata-hyphen-name",
"profile": "s3-express",
"lane": "core",
- "purpose": "Store Content-Type, Content-Language, Content-Disposition and Cache-Control with a write",
+ "purpose": "put metadata hyphen name",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MDEyMzQ1Njc4OQ==",
- "cache_control": "max-age=3600",
- "content_disposition": "attachment; filename=\"report.txt\"",
- "content_language": "nl-NL",
- "content_type": "text/plain; charset=utf-8",
- "key": "object-tests/write/object.txt",
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/hyphen-name.txt",
+ "metadata": {
+ "not-valid": "1"
+ },
"op": "put"
},
"exchanges": [
@@ -161361,7 +203063,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/write/object.txt"
+ "value": "/object-tests/metadata/hyphen-name.txt"
}
},
{
@@ -161369,7 +203071,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MDEyMzQ1Njc4OQ=="
+ "value": "MQ=="
+ }
+ },
+ {
+ "at": "/headers/x-amz-meta-not-valid",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
}
},
{
@@ -161395,38 +203105,6 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- },
- {
- "at": "/headers/content-type",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "text/plain; charset=utf-8"
- }
- },
- {
- "at": "/headers/content-language",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "nl-NL"
- }
- },
- {
- "at": "/headers/content-disposition",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "attachment; filename=\"report.txt\""
- }
- },
- {
- "at": "/headers/cache-control",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "max-age=3600"
- }
}
],
"allow_headers": [
@@ -161439,7 +203117,7 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-68e2c5df0cb2\"",
+ "etag": "\"fixture-adae183ea4af\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
@@ -161466,7 +203144,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-68e2c5df0cb2\""
+ "value": "\"fixture-adae183ea4af\""
}
},
{
@@ -161484,17 +203162,20 @@
"refusal": null
},
{
- "id": "operations/s3-express/put-if-match-current",
+ "id": "operations/s3-express/put-metadata-names-differ-in-case",
"profile": "s3-express",
"lane": "core",
- "purpose": "put if match current",
+ "purpose": "S3 matches a metadata name without case. A directory bucket refuses two names that differ only in case.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "cmVwbGFjZWQ=",
- "if_match": "\"fixture-68e2c5df0cb2\"",
- "key": "object-tests/write/object.txt",
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/names-differ-in-case.txt",
+ "metadata": {
+ "DUP": "two",
+ "dup": "one"
+ },
"op": "put"
},
"exchanges": [
@@ -161588,7 +203269,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/write/object.txt"
+ "value": "/object-tests/metadata/names-differ-in-case.txt"
}
},
{
@@ -161596,15 +203277,24 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "cmVwbGFjZWQ="
+ "value": "MQ=="
}
},
{
- "at": "/headers/if-match",
+ "at": "/headers/x-amz-meta-dup",
"optional": false,
"rule": {
- "is": "equal",
- "value": "\"fixture-68e2c5df0cb2\""
+ "is": "one_of",
+ "values": [
+ [
+ "one",
+ "two"
+ ],
+ [
+ "two",
+ "one"
+ ]
+ ]
}
},
{
@@ -161637,17 +203327,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-b4f27b379d0b\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nInvalidArgumentFixture error"
},
"framing": "chunked"
}
@@ -161661,43 +203350,83 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-b4f27b379d0b\""
+ "value": 400
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "InvalidArgument"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "metadata"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidArgument"
+ }
+ }
+ ]
},
{
- "id": "operations/s3-express/put-if-none-match-missing",
+ "id": "operations/s3-express/put-metadata-punctuation-name",
"profile": "s3-express",
"lane": "core",
- "purpose": "put if none match missing",
+ "purpose": "S3 stores a name that holds any character of an HTTP token, and one that starts with a digit.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "ZnJlc2g=",
- "if_none_match": "*",
- "key": "object-tests/write/fresh.txt",
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/punctuation-name.txt",
+ "metadata": {
+ "1a!#$%&'*+.^_`|~b": "1"
+ },
"op": "put"
},
"exchanges": [
@@ -161791,7 +203520,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/write/fresh.txt"
+ "value": "/object-tests/metadata/punctuation-name.txt"
}
},
{
@@ -161799,15 +203528,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ZnJlc2g="
+ "value": "MQ=="
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/headers/x-amz-meta-1a!#$%&'*+.^_`|~0b",
"optional": false,
"rule": {
"is": "equal",
- "value": "*"
+ "value": "1"
}
},
{
@@ -161845,7 +203574,7 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-fb6dd447625d\"",
+ "etag": "\"fixture-adae183ea4af\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
@@ -161872,7 +203601,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-fb6dd447625d\""
+ "value": "\"fixture-adae183ea4af\""
}
},
{
@@ -161890,16 +203619,19 @@
"refusal": null
},
{
- "id": "operations/s3-express/put-key-1024",
+ "id": "operations/s3-express/put-metadata-non-ascii-value",
"profile": "s3-express",
"lane": "core",
- "purpose": "put key 1024",
+ "purpose": "A directory bucket refuses a header byte outside ASCII, and stores an RFC 2047 encoded word as it came. Send é as an encoded word, or refuse the value if the client keeps metadata to ASCII.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"body_base64": "MQ==",
- "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
+ "key": "object-tests/metadata/non-ascii.txt",
+ "metadata": {
+ "value": "café"
+ },
"op": "put"
},
"exchanges": [
@@ -161993,7 +203725,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
+ "value": "/object-tests/metadata/non-ascii.txt"
}
},
{
@@ -162004,6 +203736,14 @@
"value": "MQ=="
}
},
+ {
+ "at": "/headers/x-amz-meta-value",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?caf=(?i:c3)=(?i:a9)|(?i:b)\\?Y2Fmw6k=)\\?="
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -162039,7 +203779,7 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-ab08da38e9fe\"",
+ "etag": "\"fixture-ee657e36119d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
@@ -162066,7 +203806,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ab08da38e9fe\""
+ "value": "\"fixture-ee657e36119d\""
}
},
{
@@ -162081,19 +203821,63 @@
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "metadata"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidRequest"
+ }
+ }
+ ]
},
{
- "id": "operations/s3-express/put-key-1025",
+ "id": "operations/s3-express/put-metadata-value-edge-whitespace",
"profile": "s3-express",
"lane": "core",
- "purpose": "put key 1025",
+ "purpose": "HTTP drops spaces and tabs at either end of a header value, so S3 would store a. Send the value as an RFC 2047 encoded word, which a read decodes again, or refuse it.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"body_base64": "MQ==",
- "key": "object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
+ "key": "object-tests/metadata/value-edge-whitespace.txt",
+ "metadata": {
+ "value": "\ta "
+ },
"op": "put"
},
"exchanges": [
@@ -162187,7 +203971,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/long/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
+ "value": "/object-tests/metadata/value-edge-whitespace.txt"
}
},
{
@@ -162198,6 +203982,14 @@
"value": "MQ=="
}
},
+ {
+ "at": "/headers/x-amz-meta-value",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:09)a(?:_|=(?i:20))|(?i:b)\\?CWEg)\\?="
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -162228,16 +204020,17 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ee657e36119d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nKeyTooLongErrorFixture error"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
@@ -162251,23 +204044,26 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "\"fixture-ee657e36119d\""
}
},
{
- "at": "/code",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "KeyTooLongError"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
@@ -162293,39 +204089,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "key"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": "KeyTooLongError"
+ "value": "metadata"
}
}
]
},
{
- "id": "operations/s3-express/put-lost-the-race-to-create",
+ "id": "operations/s3-express/put-metadata-value-encoded-word-text",
"profile": "s3-express",
"lane": "core",
- "purpose": "put lost the race to create",
+ "purpose": "A general-purpose bucket reads each space-separated token that starts with =? and ends with ?= as an RFC 2047 encoded word: it decodes it, or answers 400 or 500 when it cannot. A directory bucket stores such a token as it is sent. A client that decodes on a read sends the value wrapped in an encoded word of its own; one that keeps metadata to ASCII sends it as it is.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "YW5vdGhlciBvYmplY3Q=",
- "if_none_match": "*",
- "key": "object-tests/write/object.txt",
+ "body_base64": "MQ==",
+ "key": "object-tests/metadata/value-encoded-word-text.txt",
+ "metadata": {
+ "value": "=?UTF-8?Q?caf=C3=A9?="
+ },
"op": "put"
},
"exchanges": [
@@ -162419,7 +204201,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/write/object.txt"
+ "value": "/object-tests/metadata/value-encoded-word-text.txt"
}
},
{
@@ -162427,15 +204209,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
+ "value": "MQ=="
}
},
{
- "at": "/headers/if-none-match",
+ "at": "/headers/x-amz-meta-value",
"optional": false,
"rule": {
- "is": "equal",
- "value": "*"
+ "is": "matches",
+ "pattern": "=\\?UTF-8\\?Q\\?caf=C3=A9\\?=|=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:3d)=(?i:3f)UTF-8=(?i:3f)Q=(?i:3f)caf=(?i:3d)C3=(?i:3d)A9=(?i:3f)=(?i:3d)|(?i:b)\\?PT9VVEYtOD9RP2NhZj1DMz1BOT89)\\?="
}
},
{
@@ -162468,16 +204250,17 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ee657e36119d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
@@ -162491,41 +204274,44 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": "\"fixture-ee657e36119d\""
}
},
{
- "at": "/code",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "PreconditionFailed"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/put-metadata-empty-value",
+ "id": "operations/s3-express/put-metadata-value-not-an-encoded-word",
"profile": "s3-express",
"lane": "core",
- "purpose": "put metadata empty value",
+ "purpose": "A general-purpose bucket reads each space-separated token that starts with =? and ends with ?= as an RFC 2047 encoded word: it decodes it, or answers 400 or 500 when it cannot. Neither a=?b?=c nor x=?UTF-8?Q?caf=C3=A9?=y is such a token, so S3 stores this value as it is sent, and a read returns it. Send it as it is, or wrapped in an encoded word; do not refuse it.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"body_base64": "MQ==",
- "key": "object-tests/metadata/empty-value.txt",
+ "key": "object-tests/metadata/value-not-an-encoded-word.txt",
"metadata": {
- "empty": ""
+ "value": "a=?b?=c x=?UTF-8?Q?caf=C3=A9?=y"
},
"op": "put"
},
@@ -162620,7 +204406,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/empty-value.txt"
+ "value": "/object-tests/metadata/value-not-an-encoded-word.txt"
}
},
{
@@ -162632,11 +204418,11 @@
}
},
{
- "at": "/headers/x-amz-meta-empty",
+ "at": "/headers/x-amz-meta-value",
"optional": false,
"rule": {
- "is": "equal",
- "value": ""
+ "is": "matches",
+ "pattern": "a=\\?b\\?=c x=\\?UTF-8\\?Q\\?caf=C3=A9\\?=y|=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:3d)=(?i:3f)b=(?i:3f)=(?i:3d)c(?:_|=(?i:20))x=(?i:3d)=(?i:3f)UTF-8=(?i:3f)Q=(?i:3f)caf=(?i:3d)C3=(?i:3d)A9=(?i:3f)=(?i:3d)y|(?i:b)\\?YT0/Yj89YyB4PT9VVEYtOD9RP2NhZj1DMz1BOT89eQ==)\\?="
}
},
{
@@ -162674,7 +204460,7 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-e6096f6fd1ec\"",
+ "etag": "\"fixture-ee657e36119d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
@@ -162701,7 +204487,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-e6096f6fd1ec\""
+ "value": "\"fixture-ee657e36119d\""
}
},
{
@@ -162719,18 +204505,18 @@
"refusal": null
},
{
- "id": "operations/s3-express/put-metadata-hyphen-name",
+ "id": "operations/s3-express/put-metadata-value-control-characters",
"profile": "s3-express",
"lane": "core",
- "purpose": "put metadata hyphen name",
+ "purpose": "A control character other than a tab is no valid HTTP field value. Send the value as an RFC 2047 encoded word, which S3 stores and a read decodes again, or refuse it.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"body_base64": "MQ==",
- "key": "object-tests/metadata/hyphen-name.txt",
+ "key": "object-tests/metadata/value-control-characters.txt",
"metadata": {
- "not-valid": "1"
+ "value": "a\u0000bc"
},
"op": "put"
},
@@ -162825,7 +204611,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/hyphen-name.txt"
+ "value": "/object-tests/metadata/value-control-characters.txt"
}
},
{
@@ -162837,11 +204623,11 @@
}
},
{
- "at": "/headers/x-amz-meta-not-valid",
+ "at": "/headers/x-amz-meta-value",
"optional": false,
"rule": {
- "is": "equal",
- "value": "1"
+ "is": "matches",
+ "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:00)b=(?i:7f)c|(?i:b)\\?YQBif2M=)\\?="
}
},
{
@@ -162879,7 +204665,7 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-adae183ea4af\"",
+ "etag": "\"fixture-ee657e36119d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
@@ -162906,7 +204692,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-adae183ea4af\""
+ "value": "\"fixture-ee657e36119d\""
}
},
{
@@ -162921,22 +204707,46 @@
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "metadata"
+ }
+ }
+ ]
},
{
- "id": "operations/s3-express/put-metadata-names-differ-in-case",
+ "id": "operations/s3-express/put-metadata-value-line-break",
"profile": "s3-express",
"lane": "core",
- "purpose": "S3 matches a metadata name without case. A directory bucket refuses two names that differ only in case.",
+ "purpose": "CR and LF are no valid HTTP field value. A directory bucket stores an RFC 2047 encoded word as sent, so send the value as one, which a read decodes again, or refuse it.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"body_base64": "MQ==",
- "key": "object-tests/metadata/names-differ-in-case.txt",
+ "key": "object-tests/metadata/value-line-break.txt",
"metadata": {
- "DUP": "two",
- "dup": "one"
+ "value": "a\r\nb"
},
"op": "put"
},
@@ -163031,7 +204841,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/names-differ-in-case.txt"
+ "value": "/object-tests/metadata/value-line-break.txt"
}
},
{
@@ -163043,20 +204853,11 @@
}
},
{
- "at": "/headers/x-amz-meta-dup",
+ "at": "/headers/x-amz-meta-value",
"optional": false,
"rule": {
- "is": "one_of",
- "values": [
- [
- "one",
- "two"
- ],
- [
- "two",
- "one"
- ]
- ]
+ "is": "matches",
+ "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:0d)=(?i:0a)b|(?i:b)\\?YQ0KYg==)\\?="
}
},
{
@@ -163089,16 +204890,17 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-ee657e36119d\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidArgumentFixture error"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
@@ -163112,23 +204914,26 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
+ "value": "ok"
}
},
{
- "at": "/status",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": 400
+ "value": "\"fixture-ee657e36119d\""
}
},
{
- "at": "/code",
- "optional": false,
+ "at": "/value/version",
+ "optional": true,
"rule": {
- "is": "equal",
- "value": "InvalidArgument"
+ "is": "one_of",
+ "values": [
+ null,
+ ""
+ ]
}
}
],
@@ -163156,38 +204961,22 @@
"is": "equal",
"value": "metadata"
}
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": "InvalidArgument"
- }
}
]
},
{
- "id": "operations/s3-express/put-metadata-punctuation-name",
+ "id": "operations/s3-express/put-metadata-value-with-tab",
"profile": "s3-express",
"lane": "core",
- "purpose": "S3 stores a name that holds any character of an HTTP token, and one that starts with a digit.",
+ "purpose": "S3 stores a tab inside a value as it is sent. Send it raw, or inside an RFC 2047 encoded word.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"body_base64": "MQ==",
- "key": "object-tests/metadata/punctuation-name.txt",
+ "key": "object-tests/metadata/value-with-tab.txt",
"metadata": {
- "1a!#$%&'*+.^_`|~b": "1"
+ "value": "a\tb"
},
"op": "put"
},
@@ -163282,7 +205071,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/punctuation-name.txt"
+ "value": "/object-tests/metadata/value-with-tab.txt"
}
},
{
@@ -163294,11 +205083,11 @@
}
},
{
- "at": "/headers/x-amz-meta-1a!#$%&'*+.^_`|~0b",
+ "at": "/headers/x-amz-meta-value",
"optional": false,
"rule": {
- "is": "equal",
- "value": "1"
+ "is": "matches",
+ "pattern": "a\tb|=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:09)b|(?i:b)\\?YQli)\\?="
}
},
{
@@ -163336,7 +205125,7 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-adae183ea4af\"",
+ "etag": "\"fixture-ee657e36119d\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
@@ -163363,7 +205152,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-adae183ea4af\""
+ "value": "\"fixture-ee657e36119d\""
}
},
{
@@ -163381,18 +205170,18 @@
"refusal": null
},
{
- "id": "operations/s3-express/put-metadata-non-ascii-value",
+ "id": "operations/s3-express/put-metadata-outside-latin-1",
"profile": "s3-express",
"lane": "core",
- "purpose": "A directory bucket refuses a header byte outside ASCII, and stores an RFC 2047 encoded word as it came. Send é as an encoded word, or refuse the value if the client keeps metadata to ASCII.",
+ "purpose": "A directory bucket refuses the UTF-8 bytes of 雪. Send it as an RFC 2047 encoded word, or refuse the value if the client keeps metadata to ASCII.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"body_base64": "MQ==",
- "key": "object-tests/metadata/non-ascii.txt",
+ "key": "object-tests/metadata/outside-latin-1.txt",
"metadata": {
- "value": "café"
+ "value": "雪"
},
"op": "put"
},
@@ -163487,7 +205276,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/non-ascii.txt"
+ "value": "/object-tests/metadata/outside-latin-1.txt"
}
},
{
@@ -163503,7 +205292,7 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?caf=(?i:c3)=(?i:a9)|(?i:b)\\?Y2Fmw6k=)\\?="
+ "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:e9)=(?i:9b)=(?i:aa)|(?i:b)\\?6Zuq)\\?="
}
},
{
@@ -163627,19 +205416,16 @@
]
},
{
- "id": "operations/s3-express/put-metadata-value-edge-whitespace",
+ "id": "operations/s3-express/put-metadata-replaced",
"profile": "s3-express",
"lane": "core",
- "purpose": "HTTP drops spaces and tabs at either end of a header value, so S3 would store a. Send the value as an RFC 2047 encoded word, which a read decodes again, or refuse it.",
+ "purpose": "put metadata replaced",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/value-edge-whitespace.txt",
- "metadata": {
- "value": "\ta "
- },
+ "body_base64": "Mg==",
+ "key": "object-tests/metadata/replaced.txt",
"op": "put"
},
"exchanges": [
@@ -163733,7 +205519,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/value-edge-whitespace.txt"
+ "value": "/object-tests/metadata/replaced.txt"
}
},
{
@@ -163741,15 +205527,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
- }
- },
- {
- "at": "/headers/x-amz-meta-value",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:09)a(?:_|=(?i:20))|(?i:b)\\?CWEg)\\?="
+ "value": "Mg=="
}
},
{
@@ -163787,7 +205565,7 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-ee657e36119d\"",
+ "etag": "\"fixture-8ff37996a1a3\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
@@ -163814,7 +205592,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ee657e36119d\""
+ "value": "\"fixture-8ff37996a1a3\""
}
},
{
@@ -163829,46 +205607,22 @@
}
}
],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "metadata"
- }
- }
- ]
+ "refusal": null
},
{
- "id": "operations/s3-express/put-metadata-value-encoded-word-text",
+ "id": "operations/s3-express/put-metadata",
"profile": "s3-express",
"lane": "core",
- "purpose": "A general-purpose bucket reads each space-separated token that starts with =? and ends with ?= as an RFC 2047 encoded word: it decodes it, or answers 400 or 500 when it cannot. A directory bucket stores such a token as it is sent. A client that decodes on a read sends the value wrapped in an encoded word of its own; one that keeps metadata to ASCII sends it as it is.",
+ "purpose": "put metadata",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"body_base64": "MQ==",
- "key": "object-tests/metadata/value-encoded-word-text.txt",
+ "key": "object-tests/metadata/object.txt",
"metadata": {
- "value": "=?UTF-8?Q?caf=C3=A9?="
+ "name": "value",
+ "second": "2"
},
"op": "put"
},
@@ -163963,7 +205717,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/value-encoded-word-text.txt"
+ "value": "/object-tests/metadata/object.txt"
}
},
{
@@ -163975,11 +205729,19 @@
}
},
{
- "at": "/headers/x-amz-meta-value",
+ "at": "/headers/x-amz-meta-name",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "=\\?UTF-8\\?Q\\?caf=C3=A9\\?=|=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:3d)=(?i:3f)UTF-8=(?i:3f)Q=(?i:3f)caf=(?i:3d)C3=(?i:3d)A9=(?i:3f)=(?i:3d)|(?i:b)\\?PT9VVEYtOD9RP2NhZj1DMz1BOT89)\\?="
+ "is": "equal",
+ "value": "value"
+ }
+ },
+ {
+ "at": "/headers/x-amz-meta-second",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "2"
}
},
{
@@ -164062,19 +205824,16 @@
"refusal": null
},
{
- "id": "operations/s3-express/put-metadata-value-not-an-encoded-word",
+ "id": "operations/s3-express/put-overwrite",
"profile": "s3-express",
"lane": "core",
- "purpose": "A general-purpose bucket reads each space-separated token that starts with =? and ends with ?= as an RFC 2047 encoded word: it decodes it, or answers 400 or 500 when it cannot. Neither a=?b?=c nor x=?UTF-8?Q?caf=C3=A9?=y is such a token, so S3 stores this value as it is sent, and a read returns it. Send it as it is, or wrapped in an encoded word; do not refuse it.",
+ "purpose": "put overwrite",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/value-not-an-encoded-word.txt",
- "metadata": {
- "value": "a=?b?=c x=?UTF-8?Q?caf=C3=A9?=y"
- },
+ "body_base64": "b3ZlcndyaXR0ZW4=",
+ "key": "object-tests/write/object.txt",
"op": "put"
},
"exchanges": [
@@ -164168,7 +205927,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/value-not-an-encoded-word.txt"
+ "value": "/object-tests/write/object.txt"
}
},
{
@@ -164176,15 +205935,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
- }
- },
- {
- "at": "/headers/x-amz-meta-value",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "a=\\?b\\?=c x=\\?UTF-8\\?Q\\?caf=C3=A9\\?=y|=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:3d)=(?i:3f)b=(?i:3f)=(?i:3d)c(?:_|=(?i:20))x=(?i:3d)=(?i:3f)UTF-8=(?i:3f)Q=(?i:3f)caf=(?i:3d)C3=(?i:3d)A9=(?i:3f)=(?i:3d)y|(?i:b)\\?YT0/Yj89YyB4PT9VVEYtOD9RP2NhZj1DMz1BOT89eQ==)\\?="
+ "value": "b3ZlcndyaXR0ZW4="
}
},
{
@@ -164222,7 +205973,7 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-ee657e36119d\"",
+ "etag": "\"fixture-411516c7564c\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
@@ -164249,7 +206000,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ee657e36119d\""
+ "value": "\"fixture-411516c7564c\""
}
},
{
@@ -164267,19 +206018,17 @@
"refusal": null
},
{
- "id": "operations/s3-express/put-metadata-value-control-characters",
+ "id": "operations/s3-express/put-precondition-failed",
"profile": "s3-express",
"lane": "core",
- "purpose": "A control character other than a tab is no valid HTTP field value. Send the value as an RFC 2047 encoded word, which S3 stores and a read decodes again, or refuse it.",
+ "purpose": "put precondition failed",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/value-control-characters.txt",
- "metadata": {
- "value": "a\u0000bc"
- },
+ "body_base64": "YW5vdGhlciBvYmplY3Q=",
+ "if_match": "\"fixture-db71b2c0257c\"",
+ "key": "object-tests/write/object.txt",
"op": "put"
},
"exchanges": [
@@ -164373,7 +206122,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/value-control-characters.txt"
+ "value": "/object-tests/write/object.txt"
}
},
{
@@ -164381,15 +206130,15 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "YW5vdGhlciBvYmplY3Q="
}
},
{
- "at": "/headers/x-amz-meta-value",
+ "at": "/headers/if-match",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:00)b=(?i:7f)c|(?i:b)\\?YQBif2M=)\\?="
+ "is": "equal",
+ "value": "\"fixture-db71b2c0257c\""
}
},
{
@@ -164422,17 +206171,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 412,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ee657e36119d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nPreconditionFailedFixture error"
},
"framing": "chunked"
}
@@ -164446,71 +206194,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ee657e36119d\""
+ "value": "error"
}
},
{
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
+ "value": 412
}
},
{
- "at": "/parameter",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "metadata"
+ "value": "PreconditionFailed"
}
}
- ]
+ ],
+ "refusal": null
},
{
- "id": "operations/s3-express/put-metadata-value-line-break",
+ "id": "operations/s3-express/stage-after-abort",
"profile": "s3-express",
"lane": "core",
- "purpose": "CR and LF are no valid HTTP field value. A directory bucket stores an RFC 2047 encoded word as sent, so send the value as one, which a read decodes again, or refuse it.",
+ "purpose": "stage after abort",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/value-line-break.txt",
- "metadata": {
- "value": "a\r\nb"
- },
- "op": "put"
+ "body_base64": "eA==",
+ "key": "object-tests/multipart/aborted.bin",
+ "op": "s3.upload_part",
+ "part_number": 2,
+ "upload_id": "fixture-upload+/4bef2cd6d025="
},
"exchanges": [
{
@@ -164603,7 +206322,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/value-line-break.txt"
+ "value": "/object-tests/multipart/aborted.bin"
}
},
{
@@ -164611,15 +206330,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "eA=="
}
},
{
- "at": "/headers/x-amz-meta-value",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:0d)=(?i:0a)b|(?i:b)\\?YQ0KYg==)\\?="
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/4bef2cd6d025="
}
},
{
@@ -164652,17 +206379,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ee657e36119d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nNoSuchUploadFixture error"
},
"framing": "chunked"
}
@@ -164676,71 +206402,42 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ee657e36119d\""
+ "value": "error"
}
},
{
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": [
- {
- "at": "/outcome",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
+ "value": 404
}
},
{
- "at": "/parameter",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "metadata"
+ "value": "NoSuchUpload"
}
}
- ]
+ ],
+ "refusal": null
},
{
- "id": "operations/s3-express/put-metadata-value-with-tab",
+ "id": "operations/s3-express/stage-last",
"profile": "s3-express",
"lane": "core",
- "purpose": "S3 stores a tab inside a value as it is sent. Send it raw, or inside an RFC 2047 encoded word.",
+ "purpose": "stage last",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/value-with-tab.txt",
- "metadata": {
- "value": "a\tb"
- },
- "op": "put"
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part",
+ "part_number": 2,
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -164833,7 +206530,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/value-with-tab.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
@@ -164841,15 +206538,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "c2Vjb25k"
}
},
{
- "at": "/headers/x-amz-meta-value",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "a\tb|=\\?(?i:utf-8)\\?(?:(?i:q)\\?a=(?i:09)b|(?i:b)\\?YQli)\\?="
+ "is": "equal",
+ "value": "2"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
@@ -164887,7 +206592,7 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-ee657e36119d\"",
+ "etag": "\"fixture-ec2738a0b15a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
@@ -164914,38 +206619,26 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ee657e36119d\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-ec2738a0b15a\""
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/put-metadata-outside-latin-1",
+ "id": "operations/s3-express/stage-part-10000",
"profile": "s3-express",
"lane": "core",
- "purpose": "A directory bucket refuses the UTF-8 bytes of 雪. Send it as an RFC 2047 encoded word, or refuse the value if the client keeps metadata to ASCII.",
+ "purpose": "Part numbers run from 1 to 10,000. Stage part 10,000; only 0 and 10,001 may be refused.",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/outside-latin-1.txt",
- "metadata": {
- "value": "雪"
- },
- "op": "put"
+ "body_base64": "c2Vjb25k",
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part",
+ "part_number": 10000,
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -165038,7 +206731,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/outside-latin-1.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
@@ -165046,15 +206739,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "c2Vjb25k"
}
},
{
- "at": "/headers/x-amz-meta-value",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
- "is": "matches",
- "pattern": "=\\?(?i:utf-8)\\?(?:(?i:q)\\?=(?i:e9)=(?i:9b)=(?i:aa)|(?i:b)\\?6Zuq)\\?="
+ "is": "equal",
+ "value": "10000"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
@@ -165092,7 +206793,7 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-ee657e36119d\"",
+ "etag": "\"fixture-ec2738a0b15a\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
@@ -165119,76 +206820,26 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ee657e36119d\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "value": "\"fixture-ec2738a0b15a\""
}
}
],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "metadata"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": "InvalidRequest"
- }
- }
- ]
+ "refusal": null
},
{
- "id": "operations/s3-express/put-metadata-replaced",
+ "id": "operations/s3-express/stage-part-10001",
"profile": "s3-express",
"lane": "core",
- "purpose": "put metadata replaced",
+ "purpose": "stage part 10001",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "Mg==",
- "key": "object-tests/metadata/replaced.txt",
- "op": "put"
+ "body_base64": "eA==",
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part",
+ "part_number": 10001,
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -165281,7 +206932,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/replaced.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
@@ -165289,7 +206940,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "Mg=="
+ "value": "eA=="
+ }
+ },
+ {
+ "at": "/query/partNumber",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "10001"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
@@ -165322,17 +206989,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-8ff37996a1a3\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nInvalidArgumentFixture error"
},
"framing": "chunked"
}
@@ -165346,47 +207012,83 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-8ff37996a1a3\""
+ "value": 400
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "InvalidArgument"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "part_number"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidArgument"
+ }
+ }
+ ]
},
{
- "id": "operations/s3-express/put-metadata",
+ "id": "operations/s3-express/stage-part-zero",
"profile": "s3-express",
"lane": "core",
- "purpose": "put metadata",
+ "purpose": "stage part zero",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "MQ==",
- "key": "object-tests/metadata/object.txt",
- "metadata": {
- "name": "value",
- "second": "2"
- },
- "op": "put"
+ "body_base64": "eA==",
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part",
+ "part_number": 0,
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -165479,7 +207181,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/metadata/object.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
@@ -165487,23 +207189,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "MQ=="
+ "value": "eA=="
}
},
{
- "at": "/headers/x-amz-meta-name",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "value"
+ "value": "0"
}
},
{
- "at": "/headers/x-amz-meta-second",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
@@ -165536,17 +207238,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 400,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-ee657e36119d\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nInvalidArgumentFixture error"
},
"framing": "chunked"
}
@@ -165560,43 +207261,83 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ee657e36119d\""
+ "value": 400
}
},
{
- "at": "/value/version",
- "optional": true,
+ "at": "/code",
+ "optional": false,
"rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
+ "is": "equal",
+ "value": "InvalidArgument"
}
}
],
- "refusal": null
+ "refusal": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "refused"
+ }
+ },
+ {
+ "at": "/kind",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": ".+"
+ }
+ },
+ {
+ "at": "/parameter",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "part_number"
+ }
+ },
+ {
+ "at": "/status",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": 400
+ }
+ },
+ {
+ "at": "/code",
+ "optional": true,
+ "rule": {
+ "is": "equal",
+ "value": "InvalidArgument"
+ }
+ }
+ ]
},
{
- "id": "operations/s3-express/put-overwrite",
+ "id": "operations/s3-express/stage-unknown-upload",
"profile": "s3-express",
"lane": "core",
- "purpose": "put overwrite",
+ "purpose": "stage unknown upload",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "b3ZlcndyaXR0ZW4=",
- "key": "object-tests/write/object.txt",
- "op": "put"
+ "body_base64": "eA==",
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part",
+ "part_number": 1,
+ "upload_id": "fixture-upload+/4d0d5ccc4993="
},
"exchanges": [
{
@@ -165689,7 +207430,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/write/object.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
@@ -165697,210 +207438,23 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "b3ZlcndyaXR0ZW4="
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "date": {
- "from": "now"
- },
- "etag": "\"fixture-411516c7564c\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "base64",
- "data": ""
- },
- "framing": "chunked"
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-411516c7564c\""
- }
- },
- {
- "at": "/value/version",
- "optional": true,
- "rule": {
- "is": "one_of",
- "values": [
- null,
- ""
- ]
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/put-precondition-failed",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "put precondition failed",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "YW5vdGhlciBvYmplY3Q=",
- "if_match": "\"fixture-db71b2c0257c\"",
- "key": "object-tests/write/object.txt",
- "op": "put"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/query/session",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "PUT"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/write/object.txt"
+ "value": "eA=="
}
},
{
- "at": "/body_base64",
+ "at": "/query/partNumber",
"optional": false,
"rule": {
"is": "equal",
- "value": "YW5vdGhlciBvYmplY3Q="
+ "value": "1"
}
},
{
- "at": "/headers/if-match",
+ "at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-db71b2c0257c\""
+ "value": "fixture-upload+/4d0d5ccc4993="
}
},
{
@@ -165933,7 +207487,7 @@
],
"allow_query": [],
"response": {
- "status": 412,
+ "status": 404,
"headers": {
"content-type": "application/xml",
"date": {
@@ -165942,7 +207496,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nPreconditionFailedFixture error"
+ "data": "\nNoSuchUploadFixture error"
},
"framing": "chunked"
}
@@ -165964,7 +207518,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 412
+ "value": 404
}
},
{
@@ -165972,26 +207526,26 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PreconditionFailed"
+ "value": "NoSuchUpload"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/stage-after-abort",
+ "id": "operations/s3-express/stage",
"profile": "s3-express",
"lane": "core",
- "purpose": "stage after abort",
+ "purpose": "stage",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "eA==",
- "key": "object-tests/multipart/aborted.bin",
+ "body_base64": "cGFydA==",
+ "key": "object-tests/multipart/object.bin",
"op": "s3.upload_part",
- "part_number": 2,
- "upload_id": "fixture-upload+/4bef2cd6d025="
+ "part_number": 1,
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -166084,7 +207638,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/aborted.bin"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
@@ -166092,7 +207646,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "eA=="
+ "value": "cGFydA=="
}
},
{
@@ -166100,7 +207654,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "1"
}
},
{
@@ -166108,7 +207662,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/4bef2cd6d025="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
@@ -166141,16 +207695,17 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nNoSuchUploadFixture error"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
@@ -166164,41 +207719,33 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
+ "value": "ok"
}
},
{
- "at": "/code",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "NoSuchUpload"
+ "value": "\"fixture-9aff617fcdf8\""
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/stage-last",
+ "id": "operations/s3-express/stage-key-question",
"profile": "s3-express",
"lane": "core",
- "purpose": "stage last",
+ "purpose": "stage, with the key \"question?mark.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "c2Vjb25k",
- "key": "object-tests/multipart/object.bin",
+ "body_base64": "cGFydA==",
+ "key": "object-tests/keys/question?mark.txt",
"op": "s3.upload_part",
- "part_number": 2,
+ "part_number": 1,
"upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
@@ -166292,7 +207839,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/keys/question?mark.txt"
}
},
{
@@ -166300,7 +207847,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
+ "value": "cGFydA=="
}
},
{
@@ -166308,7 +207855,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "2"
+ "value": "1"
}
},
{
@@ -166354,7 +207901,7 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-ec2738a0b15a\"",
+ "etag": "\"fixture-9aff617fcdf8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
@@ -166381,25 +207928,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ec2738a0b15a\""
+ "value": "\"fixture-9aff617fcdf8\""
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/stage-part-10000",
+ "id": "operations/s3-express/stage-key-hash",
"profile": "s3-express",
"lane": "core",
- "purpose": "Part numbers run from 1 to 10,000. Stage part 10,000; only 0 and 10,001 may be refused.",
+ "purpose": "stage, with the key \"hash#tag.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "c2Vjb25k",
- "key": "object-tests/multipart/object.bin",
+ "body_base64": "cGFydA==",
+ "key": "object-tests/keys/hash#tag.txt",
"op": "s3.upload_part",
- "part_number": 10000,
+ "part_number": 1,
"upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
@@ -166493,7 +208040,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/keys/hash#tag.txt"
}
},
{
@@ -166501,7 +208048,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "c2Vjb25k"
+ "value": "cGFydA=="
}
},
{
@@ -166509,7 +208056,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "10000"
+ "value": "1"
}
},
{
@@ -166555,7 +208102,7 @@
"date": {
"from": "now"
},
- "etag": "\"fixture-ec2738a0b15a\"",
+ "etag": "\"fixture-9aff617fcdf8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
@@ -166582,25 +208129,25 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-ec2738a0b15a\""
+ "value": "\"fixture-9aff617fcdf8\""
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/stage-part-10001",
+ "id": "operations/s3-express/stage-key-percent",
"profile": "s3-express",
"lane": "core",
- "purpose": "stage part 10001",
+ "purpose": "stage, with the key \"percent%20.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "eA==",
- "key": "object-tests/multipart/object.bin",
+ "body_base64": "cGFydA==",
+ "key": "object-tests/keys/percent%20.txt",
"op": "s3.upload_part",
- "part_number": 10001,
+ "part_number": 1,
"upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
@@ -166694,7 +208241,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/keys/percent%20.txt"
}
},
{
@@ -166702,7 +208249,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "eA=="
+ "value": "cGFydA=="
}
},
{
@@ -166710,7 +208257,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "10001"
+ "value": "1"
}
},
{
@@ -166751,16 +208298,17 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidArgumentFixture error"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
@@ -166774,82 +208322,33 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
+ "value": "ok"
}
},
{
- "at": "/code",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidArgument"
+ "value": "\"fixture-9aff617fcdf8\""
}
}
],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "part_number"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": "InvalidArgument"
- }
- }
- ]
+ "refusal": null
},
{
- "id": "operations/s3-express/stage-part-zero",
+ "id": "operations/s3-express/stage-key-plus",
"profile": "s3-express",
"lane": "core",
- "purpose": "stage part zero",
+ "purpose": "stage, with the key \"plus+plus.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "eA==",
- "key": "object-tests/multipart/object.bin",
+ "body_base64": "cGFydA==",
+ "key": "object-tests/keys/plus+plus.txt",
"op": "s3.upload_part",
- "part_number": 0,
+ "part_number": 1,
"upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
@@ -166943,7 +208442,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/keys/plus+plus.txt"
}
},
{
@@ -166951,7 +208450,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "eA=="
+ "value": "cGFydA=="
}
},
{
@@ -166959,7 +208458,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "0"
+ "value": "1"
}
},
{
@@ -167000,16 +208499,17 @@
],
"allow_query": [],
"response": {
- "status": 400,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nInvalidArgumentFixture error"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
@@ -167023,83 +208523,34 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 400
+ "value": "ok"
}
},
{
- "at": "/code",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "InvalidArgument"
+ "value": "\"fixture-9aff617fcdf8\""
}
}
],
- "refusal": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "refused"
- }
- },
- {
- "at": "/kind",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": ".+"
- }
- },
- {
- "at": "/parameter",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "part_number"
- }
- },
- {
- "at": "/status",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": 400
- }
- },
- {
- "at": "/code",
- "optional": true,
- "rule": {
- "is": "equal",
- "value": "InvalidArgument"
- }
- }
- ]
+ "refusal": null
},
{
- "id": "operations/s3-express/stage-unknown-upload",
+ "id": "operations/s3-express/stage-key-space",
"profile": "s3-express",
"lane": "core",
- "purpose": "stage unknown upload",
+ "purpose": "stage, with the key \"space name.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "eA==",
- "key": "object-tests/multipart/object.bin",
+ "body_base64": "cGFydA==",
+ "key": "object-tests/keys/space name.txt",
"op": "s3.upload_part",
"part_number": 1,
- "upload_id": "fixture-upload+/4d0d5ccc4993="
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -167192,7 +208643,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/keys/space name.txt"
}
},
{
@@ -167200,7 +208651,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "eA=="
+ "value": "cGFydA=="
}
},
{
@@ -167216,7 +208667,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/4d0d5ccc4993="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
@@ -167249,16 +208700,17 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "etag": "\"fixture-9aff617fcdf8\"",
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "utf8",
- "data": "\nNoSuchUploadFixture error"
+ "encoding": "base64",
+ "data": ""
},
"framing": "chunked"
}
@@ -167272,39 +208724,31 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
+ "value": "ok"
}
},
{
- "at": "/code",
+ "at": "/value/etag",
"optional": false,
"rule": {
"is": "equal",
- "value": "NoSuchUpload"
+ "value": "\"fixture-9aff617fcdf8\""
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/stage",
+ "id": "operations/s3-express/stage-key-non-ascii",
"profile": "s3-express",
"lane": "core",
- "purpose": "stage",
+ "purpose": "stage, with the key \"café/雪.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"body_base64": "cGFydA==",
- "key": "object-tests/multipart/object.bin",
+ "key": "object-tests/keys/café/雪.txt",
"op": "s3.upload_part",
"part_number": 1,
"upload_id": "fixture-upload+/c60fb1e2e00d="
@@ -167400,7 +208844,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/keys/café/雪.txt"
}
},
{
@@ -167496,16 +208940,16 @@
"refusal": null
},
{
- "id": "operations/s3-express/stage-key-question",
+ "id": "operations/s3-express/stage-key-double-slash",
"profile": "s3-express",
"lane": "core",
- "purpose": "stage, with the key \"question?mark.txt\"",
+ "purpose": "stage, with the key \"double//slash.txt\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"body_base64": "cGFydA==",
- "key": "object-tests/keys/question?mark.txt",
+ "key": "object-tests/keys/double//slash.txt",
"op": "s3.upload_part",
"part_number": 1,
"upload_id": "fixture-upload+/c60fb1e2e00d="
@@ -167601,7 +209045,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/question?mark.txt"
+ "value": "/object-tests/keys/double//slash.txt"
}
},
{
@@ -167697,16 +209141,16 @@
"refusal": null
},
{
- "id": "operations/s3-express/stage-key-hash",
+ "id": "operations/s3-express/stage-key-trailing-slash",
"profile": "s3-express",
"lane": "core",
- "purpose": "stage, with the key \"hash#tag.txt\"",
+ "purpose": "stage, with the key \"trailing-slash/\"",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"body_base64": "cGFydA==",
- "key": "object-tests/keys/hash#tag.txt",
+ "key": "object-tests/keys/trailing-slash/",
"op": "s3.upload_part",
"part_number": 1,
"upload_id": "fixture-upload+/c60fb1e2e00d="
@@ -167802,7 +209246,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/hash#tag.txt"
+ "value": "/object-tests/keys/trailing-slash/"
}
},
{
@@ -167898,16 +209342,16 @@
"refusal": null
},
{
- "id": "operations/s3-express/stage-key-percent",
+ "id": "operations/s3-express/stage-empty-part",
"profile": "s3-express",
"lane": "core",
- "purpose": "stage, with the key \"percent%20.txt\"",
+ "purpose": "Stage an empty part, which S3 takes",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "cGFydA==",
- "key": "object-tests/keys/percent%20.txt",
+ "body_base64": "",
+ "key": "object-tests/multipart/object.bin",
"op": "s3.upload_part",
"part_number": 1,
"upload_id": "fixture-upload+/c60fb1e2e00d="
@@ -168003,7 +209447,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/percent%20.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
@@ -168011,7 +209455,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "cGFydA=="
+ "value": ""
}
},
{
@@ -168099,18 +209543,18 @@
"refusal": null
},
{
- "id": "operations/s3-express/stage-key-plus",
+ "id": "operations/s3-express/stage-copy",
"profile": "s3-express",
"lane": "core",
- "purpose": "stage, with the key \"plus+plus.txt\"",
+ "purpose": "Copy a whole object into a part of a multipart upload, with UploadPartCopy",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html"
],
"call": {
- "body_base64": "cGFydA==",
- "key": "object-tests/keys/plus+plus.txt",
- "op": "s3.upload_part",
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part_copy",
"part_number": 1,
+ "source_key": "object-tests/copy/source.txt",
"upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
@@ -168123,7 +209567,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -168131,17 +209575,33 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/query/partNumber",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/c60fb1e2e00d="
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -168150,6 +209610,13 @@
"value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ },
{
"at": "/headers/authorization",
"optional": false,
@@ -168159,10 +209626,11 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -168173,20 +209641,61 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
+ },
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/stage-copy-range",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Copy bytes 0 to 2 of an object into a part, named in x-amz-copy-source-range with an inclusive end, as bytes=0-2",
+ "sources": [
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html"
+ ],
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part_copy",
+ "part_number": 1,
+ "source_key": "object-tests/copy/source.txt",
+ "source_range": {
+ "end": 3,
+ "start": 0
},
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -168204,7 +209713,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/plus+plus.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
@@ -168212,7 +209721,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "cGFydA=="
+ "value": ""
}
},
{
@@ -168243,8 +209752,7 @@
"at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "absent"
}
},
{
@@ -168252,7 +209760,23 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=0-2"
}
}
],
@@ -168263,15 +209787,14 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-9aff617fcdf8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
},
"framing": "chunked"
}
@@ -168293,25 +209816,29 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-9aff617fcdf8\""
+ "value": "\"fixture-etag\""
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/stage-key-space",
+ "id": "operations/s3-express/stage-copy-range-beyond-source",
"profile": "s3-express",
"lane": "core",
- "purpose": "stage, with the key \"space name.txt\"",
+ "purpose": "Copy a part whose range ends past the source. A directory bucket accepts it, where a general-purpose bucket answers 400 InvalidArgument",
"sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html"
],
"call": {
- "body_base64": "cGFydA==",
- "key": "object-tests/keys/space name.txt",
- "op": "s3.upload_part",
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part_copy",
"part_number": 1,
+ "source_key": "object-tests/copy/source.txt",
+ "source_range": {
+ "end": 10,
+ "start": 0
+ },
"upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
@@ -168324,7 +209851,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -168332,17 +209859,33 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/query/partNumber",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/c60fb1e2e00d="
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -168351,6 +209894,13 @@
"value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ },
{
"at": "/headers/authorization",
"optional": false,
@@ -168360,10 +209910,19 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source-range",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "bytes=0-9"
}
}
],
@@ -168374,20 +209933,60 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\n2024-01-01T00:00:00.000Z"fixture-etag""
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
}
]
+ }
+ ],
+ "expect": [
+ {
+ "at": "/outcome",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "ok"
+ }
},
+ {
+ "at": "/value/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-etag\""
+ }
+ }
+ ],
+ "refusal": null
+ },
+ {
+ "id": "operations/s3-express/stage-copy-200-internal-error",
+ "profile": "s3-express",
+ "lane": "core",
+ "purpose": "Report a part copy answered 200 with an InternalError in the body as an error, never as a success. A client may retry up to 5 times first, and need not retry",
+ "sources": [
+ "https://repost.aws/knowledge-center/s3-resolve-200-internalerror",
+ "https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html"
+ ],
+ "origin": "transient",
+ "derived_from": "operations/s3-express/stage-copy",
+ "call": {
+ "key": "object-tests/multipart/object.bin",
+ "op": "s3.upload_part_copy",
+ "part_number": 1,
+ "source_key": "object-tests/copy/source.txt",
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
+ },
+ "exchanges": [
{
"alternatives": [
{
@@ -168405,7 +210004,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/space name.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
@@ -168413,7 +210012,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "cGFydA=="
+ "value": ""
}
},
{
@@ -168444,8 +210043,7 @@
"at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "absent"
}
},
{
@@ -168453,7 +210051,15 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -168464,58 +210070,20 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-9aff617fcdf8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
}
]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
},
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-9aff617fcdf8\""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/stage-key-non-ascii",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "stage, with the key \"café/雪.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "cGFydA==",
- "key": "object-tests/keys/café/雪.txt",
- "op": "s3.upload_part",
- "part_number": 1,
- "upload_id": "fixture-upload+/c60fb1e2e00d="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -168525,7 +210093,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -168533,17 +210101,33 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/query/partNumber",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/c60fb1e2e00d="
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -168552,6 +210136,13 @@
"value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ },
{
"at": "/headers/authorization",
"optional": false,
@@ -168561,10 +210152,11 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -168575,19 +210167,20 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
},
{
"alternatives": [
@@ -168606,7 +210199,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/café/雪.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
@@ -168614,7 +210207,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "cGFydA=="
+ "value": ""
}
},
{
@@ -168645,8 +210238,7 @@
"at": "/headers/x-amz-s3session-token",
"optional": false,
"rule": {
- "is": "equal",
- "value": "fixture-session-token"
+ "is": "absent"
}
},
{
@@ -168654,7 +210246,15 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -168665,58 +210265,21 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-9aff617fcdf8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
}
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
+ ],
+ "optional": true
},
- {
- "at": "/value/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-9aff617fcdf8\""
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/stage-key-double-slash",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "stage, with the key \"double//slash.txt\"",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "body_base64": "cGFydA==",
- "key": "object-tests/keys/double//slash.txt",
- "op": "s3.upload_part",
- "part_number": 1,
- "upload_id": "fixture-upload+/c60fb1e2e00d="
- },
- "exchanges": [
{
"alternatives": [
{
@@ -168726,7 +210289,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "PUT"
}
},
{
@@ -168734,17 +210297,33 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
- "at": "/query/session",
+ "at": "/body_base64",
"optional": false,
"rule": {
"is": "equal",
"value": ""
}
},
+ {
+ "at": "/query/partNumber",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/c60fb1e2e00d="
+ }
+ },
{
"at": "/headers/host",
"optional": false,
@@ -168753,6 +210332,13 @@
"value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
}
},
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ },
{
"at": "/headers/authorization",
"optional": false,
@@ -168762,10 +210348,11 @@
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/x-amz-copy-source",
"optional": false,
"rule": {
- "is": "absent"
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -168776,19 +210363,20 @@
"response": {
"status": 200,
"headers": {
- "content-type": "application/xml"
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
},
"body": {
"encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
+ "framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
},
{
"alternatives": [
@@ -168807,7 +210395,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/double//slash.txt"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
@@ -168815,7 +210403,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "cGFydA=="
+ "value": ""
}
},
{
@@ -168845,9 +210433,106 @@
{
"at": "/headers/x-amz-s3session-token",
"optional": false,
+ "rule": {
+ "is": "absent"
+ }
+ },
+ {
+ "at": "/headers/authorization",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
+ }
+ }
+ ],
+ "allow_headers": [
+ "content-type"
+ ],
+ "allow_query": [],
+ "response": {
+ "status": 200,
+ "headers": {
+ "content-type": "application/xml",
+ "date": {
+ "from": "now"
+ }
+ },
+ "body": {
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
+ },
+ "framing": "chunked"
+ }
+ }
+ ],
+ "optional": true
+ },
+ {
+ "alternatives": [
+ {
+ "request": [
+ {
+ "at": "/method",
+ "optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
+ "value": "PUT"
+ }
+ },
+ {
+ "at": "/path",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "/object-tests/multipart/object.bin"
+ }
+ },
+ {
+ "at": "/body_base64",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": ""
+ }
+ },
+ {
+ "at": "/query/partNumber",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "1"
+ }
+ },
+ {
+ "at": "/query/uploadId",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture-upload+/c60fb1e2e00d="
+ }
+ },
+ {
+ "at": "/headers/host",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ }
+ },
+ {
+ "at": "/headers/x-amz-s3session-token",
+ "optional": false,
+ "rule": {
+ "is": "absent"
}
},
{
@@ -168855,7 +210540,15 @@
"optional": false,
"rule": {
"is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ }
+ },
+ {
+ "at": "/headers/x-amz-copy-source",
+ "optional": false,
+ "rule": {
+ "is": "matches",
+ "pattern": "/?fixture[^/]*/object-tests/copy/source\\.txt"
}
}
],
@@ -168866,20 +210559,20 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-9aff617fcdf8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nInternalErrorWe encountered an internal error. Please try again.fixturefixture"
},
"framing": "chunked"
}
}
- ]
+ ],
+ "optional": true
}
],
"expect": [
@@ -168888,34 +210581,32 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/code",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-9aff617fcdf8\""
+ "value": "InternalError"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/stage-key-trailing-slash",
+ "id": "operations/s3-express/staged-after-abort",
"profile": "s3-express",
"lane": "core",
- "purpose": "stage, with the key \"trailing-slash/\"",
+ "purpose": "staged after abort",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "cGFydA==",
- "key": "object-tests/keys/trailing-slash/",
- "op": "s3.upload_part",
- "part_number": 1,
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "key": "object-tests/multipart/aborted.bin",
+ "op": "s3.list_parts",
+ "upload_id": "fixture-upload+/4bef2cd6d025="
},
"exchanges": [
{
@@ -169000,7 +210691,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -169008,7 +210699,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/keys/trailing-slash/"
+ "value": "/object-tests/multipart/aborted.bin"
}
},
{
@@ -169016,15 +210707,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "cGFydA=="
- }
- },
- {
- "at": "/query/partNumber",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1"
+ "value": ""
}
},
{
@@ -169032,7 +210715,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": "fixture-upload+/4bef2cd6d025="
}
},
{
@@ -169065,17 +210748,16 @@
],
"allow_query": [],
"response": {
- "status": 200,
+ "status": 404,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
- },
- "etag": "\"fixture-9aff617fcdf8\"",
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
+ }
},
"body": {
- "encoding": "base64",
- "data": ""
+ "encoding": "utf8",
+ "data": "\nNoSuchUploadFixture error"
},
"framing": "chunked"
}
@@ -169089,34 +210771,40 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "ok"
+ "value": "error"
}
},
{
- "at": "/value/etag",
+ "at": "/status",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-9aff617fcdf8\""
+ "value": 404
+ }
+ },
+ {
+ "at": "/code",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "NoSuchUpload"
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/stage-empty-part",
+ "id": "operations/s3-express/staged-replacement",
"profile": "s3-express",
"lane": "core",
- "purpose": "Stage an empty part, which S3 takes",
+ "purpose": "staged replacement",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "body_base64": "",
- "key": "object-tests/multipart/object.bin",
- "op": "s3.upload_part",
- "part_number": 1,
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "key": "object-tests/multipart/replaced.bin",
+ "op": "s3.list_parts",
+ "upload_id": "fixture-upload+/3cc68ed16e61="
},
"exchanges": [
{
@@ -169201,7 +210889,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "PUT"
+ "value": "GET"
}
},
{
@@ -169209,7 +210897,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/object.bin"
+ "value": "/object-tests/multipart/replaced.bin"
}
},
{
@@ -169220,20 +210908,12 @@
"value": ""
}
},
- {
- "at": "/query/partNumber",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "1"
- }
- },
{
"at": "/query/uploadId",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": "fixture-upload+/3cc68ed16e61="
}
},
{
@@ -169268,17 +210948,16 @@
"response": {
"status": 200,
"headers": {
+ "content-type": "application/xml",
"date": {
"from": "now"
},
- "etag": "\"fixture-9aff617fcdf8\"",
"last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
- "encoding": "base64",
- "data": ""
- },
- "framing": "chunked"
+ "encoding": "utf8",
+ "data": "\nfixtureobject-tests/multipart/replaced.binfixture-upload+/3cc68ed16e61=021000false"fixture-09ac5e35935f"2024-01-01T00:00:00.000Z11"fixture-4500bb3504fa"2024-01-01T00:00:00.000Z26fixture-ownerfixture-ownerEXPRESS_ONEZONE"
+ }
}
}
]
@@ -169294,28 +210973,76 @@
}
},
{
- "at": "/value/etag",
+ "at": "/value/parts/0/number",
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-9aff617fcdf8\""
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/parts/0/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 1
+ }
+ },
+ {
+ "at": "/value/parts/0/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-09ac5e35935f\""
+ }
+ },
+ {
+ "at": "/value/parts/1/number",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 2
+ }
+ },
+ {
+ "at": "/value/parts/1/size",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": 6
+ }
+ },
+ {
+ "at": "/value/parts/1/etag",
+ "optional": false,
+ "rule": {
+ "is": "equal",
+ "value": "\"fixture-4500bb3504fa\""
+ }
+ },
+ {
+ "at": "/value/parts",
+ "optional": false,
+ "rule": {
+ "is": "array_length",
+ "value": 2
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/staged-after-abort",
+ "id": "operations/s3-express/staged-unknown-upload",
"profile": "s3-express",
"lane": "core",
- "purpose": "staged after abort",
+ "purpose": "staged unknown upload",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/aborted.bin",
+ "key": "object-tests/multipart/object.bin",
"op": "s3.list_parts",
- "upload_id": "fixture-upload+/4bef2cd6d025="
+ "upload_id": "fixture-upload+/4d0d5ccc4993="
},
"exchanges": [
{
@@ -169408,7 +211135,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/aborted.bin"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
@@ -169424,7 +211151,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/4bef2cd6d025="
+ "value": "fixture-upload+/4d0d5ccc4993="
}
},
{
@@ -169503,17 +211230,17 @@
"refusal": null
},
{
- "id": "operations/s3-express/staged-replacement",
+ "id": "operations/s3-express/staged",
"profile": "s3-express",
"lane": "core",
- "purpose": "staged replacement",
+ "purpose": "staged",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
- "key": "object-tests/multipart/replaced.bin",
+ "key": "object-tests/multipart/object.bin",
"op": "s3.list_parts",
- "upload_id": "fixture-upload+/3cc68ed16e61="
+ "upload_id": "fixture-upload+/c60fb1e2e00d="
},
"exchanges": [
{
@@ -169606,7 +211333,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "/object-tests/multipart/replaced.bin"
+ "value": "/object-tests/multipart/object.bin"
}
},
{
@@ -169622,7 +211349,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/3cc68ed16e61="
+ "value": "fixture-upload+/c60fb1e2e00d="
}
},
{
@@ -169665,7 +211392,7 @@
},
"body": {
"encoding": "utf8",
- "data": "\nfixtureobject-tests/multipart/replaced.binfixture-upload+/3cc68ed16e61=021000false"fixture-09ac5e35935f"2024-01-01T00:00:00.000Z11"fixture-4500bb3504fa"2024-01-01T00:00:00.000Z26fixture-ownerfixture-ownerEXPRESS_ONEZONE"
+ "data": "\nfixtureobject-tests/multipart/object.binfixture-upload+/c60fb1e2e00d=021000false"fixture-9aff617fcdf8"2024-01-01T00:00:00.000Z15242880"fixture-ec2738a0b15a"2024-01-01T00:00:00.000Z26fixture-ownerfixture-ownerEXPRESS_ONEZONE"
}
}
}
@@ -169694,7 +211421,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": 1
+ "value": 5242880
}
},
{
@@ -169702,7 +211429,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-09ac5e35935f\""
+ "value": "\"fixture-9aff617fcdf8\""
}
},
{
@@ -169726,7 +211453,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "\"fixture-4500bb3504fa\""
+ "value": "\"fixture-ec2738a0b15a\""
}
},
{
@@ -169741,17 +211468,16 @@
"refusal": null
},
{
- "id": "operations/s3-express/staged-unknown-upload",
+ "id": "operations/s3-express/start",
"profile": "s3-express",
"lane": "core",
- "purpose": "staged unknown upload",
+ "purpose": "start",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
"key": "object-tests/multipart/object.bin",
- "op": "s3.list_parts",
- "upload_id": "fixture-upload+/4d0d5ccc4993="
+ "op": "s3.create_multipart"
},
"exchanges": [
{
@@ -169836,7 +211562,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -169856,11 +211582,11 @@
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/uploads",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/4d0d5ccc4993="
+ "value": ""
}
},
{
@@ -169893,16 +211619,16 @@
],
"allow_query": [],
"response": {
- "status": 404,
+ "status": 200,
"headers": {
- "content-type": "application/xml",
"date": {
"from": "now"
- }
+ },
+ "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
},
"body": {
"encoding": "utf8",
- "data": "\nNoSuchUploadFixture error"
+ "data": "fixtureobject-tests/multipart/object.binfixture-upload+/c60fb1e2e00d="
},
"framing": "chunked"
}
@@ -169916,40 +211642,35 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "error"
- }
- },
- {
- "at": "/status",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 404
+ "value": "ok"
}
},
{
- "at": "/code",
+ "at": "/value/upload_id",
"optional": false,
"rule": {
"is": "equal",
- "value": "NoSuchUpload"
+ "value": "fixture-upload+/c60fb1e2e00d="
}
}
],
"refusal": null
},
{
- "id": "operations/s3-express/staged",
+ "id": "operations/s3-express/start-content-properties",
"profile": "s3-express",
"lane": "core",
- "purpose": "staged",
+ "purpose": "Start a multipart upload with content properties, which the completed object keeps",
"sources": [
"aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
],
"call": {
+ "cache_control": "max-age=3600",
+ "content_disposition": "attachment; filename=\"report.txt\"",
+ "content_language": "nl-NL",
+ "content_type": "text/plain; charset=utf-8",
"key": "object-tests/multipart/object.bin",
- "op": "s3.list_parts",
- "upload_id": "fixture-upload+/c60fb1e2e00d="
+ "op": "s3.create_multipart"
},
"exchanges": [
{
@@ -170034,7 +211755,7 @@
"optional": false,
"rule": {
"is": "equal",
- "value": "GET"
+ "value": "POST"
}
},
{
@@ -170054,11 +211775,11 @@
}
},
{
- "at": "/query/uploadId",
+ "at": "/query/uploads",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-upload+/c60fb1e2e00d="
+ "value": ""
}
},
{
@@ -170084,242 +211805,37 @@
"is": "matches",
"pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
}
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml",
- "date": {
- "from": "now"
- },
- "last-modified": "Mon, 01 Jan 2024 00:00:00 GMT"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixtureobject-tests/multipart/object.binfixture-upload+/c60fb1e2e00d=021000false"fixture-9aff617fcdf8"2024-01-01T00:00:00.000Z15242880"fixture-ec2738a0b15a"2024-01-01T00:00:00.000Z26fixture-ownerfixture-ownerEXPRESS_ONEZONE"
- }
- }
- }
- ]
- }
- ],
- "expect": [
- {
- "at": "/outcome",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "ok"
- }
- },
- {
- "at": "/value/parts/0/number",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 1
- }
- },
- {
- "at": "/value/parts/0/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 5242880
- }
- },
- {
- "at": "/value/parts/0/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-9aff617fcdf8\""
- }
- },
- {
- "at": "/value/parts/1/number",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 2
- }
- },
- {
- "at": "/value/parts/1/size",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": 6
- }
- },
- {
- "at": "/value/parts/1/etag",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "\"fixture-ec2738a0b15a\""
- }
- },
- {
- "at": "/value/parts",
- "optional": false,
- "rule": {
- "is": "array_length",
- "value": 2
- }
- }
- ],
- "refusal": null
- },
- {
- "id": "operations/s3-express/start",
- "profile": "s3-express",
- "lane": "core",
- "purpose": "start",
- "sources": [
- "aws-sdk-cpp/generated/src/aws-cpp-sdk-s3-crt"
- ],
- "call": {
- "key": "object-tests/multipart/object.bin",
- "op": "s3.create_multipart"
- },
- "exchanges": [
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "GET"
- }
},
{
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/"
- }
- },
- {
- "at": "/query/session",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": ""
- }
- },
- {
- "at": "/headers/host",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=offline/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
- }
- },
- {
- "at": "/headers/x-amz-s3session-token",
- "optional": false,
- "rule": {
- "is": "absent"
- }
- }
- ],
- "allow_headers": [
- "content-type"
- ],
- "allow_query": [],
- "response": {
- "status": 200,
- "headers": {
- "content-type": "application/xml"
- },
- "body": {
- "encoding": "utf8",
- "data": "\nfixture-session-tokenfixture-secret-keyfixture-access-keySESSION_EXPIRATION"
- },
- "body_time": {
- "text": "SESSION_EXPIRATION",
- "offset_seconds": 300
- }
- }
- }
- ]
- },
- {
- "alternatives": [
- {
- "request": [
- {
- "at": "/method",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "POST"
- }
- },
- {
- "at": "/path",
- "optional": false,
- "rule": {
- "is": "equal",
- "value": "/object-tests/multipart/object.bin"
- }
- },
- {
- "at": "/body_base64",
+ "at": "/headers/content-type",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "text/plain; charset=utf-8"
}
},
{
- "at": "/query/uploads",
+ "at": "/headers/content-language",
"optional": false,
"rule": {
"is": "equal",
- "value": ""
+ "value": "nl-NL"
}
},
{
- "at": "/headers/host",
+ "at": "/headers/content-disposition",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture--euc1-az1--x-s3.s3express-euc1-az1.fixture.invalid"
+ "value": "attachment; filename=\"report.txt\""
}
},
{
- "at": "/headers/x-amz-s3session-token",
+ "at": "/headers/cache-control",
"optional": false,
"rule": {
"is": "equal",
- "value": "fixture-session-token"
- }
- },
- {
- "at": "/headers/authorization",
- "optional": false,
- "rule": {
- "is": "matches",
- "pattern": "AWS4-HMAC-SHA256 Credential=fixture-access-key/[0-9]{8}/eu-central-1/s3express/aws4_request, SignedHeaders=.+, Signature=[a-f0-9]{64}"
+ "value": "max-age=3600"
}
}
],
diff --git a/src/checks.rs b/src/checks.rs
index 51db646..cf270ac 100644
--- a/src/checks.rs
+++ b/src/checks.rs
@@ -107,6 +107,10 @@ fn rule_matches_value(rule: &Rule, got: Option<&Value>, now: SystemTime) -> bool
_ => false,
}
}
+ // These hold the request as a whole, and report why they fail through check_assertions.
+ Rule::BlobBatch { .. } | Rule::BodyChecksum { .. } => {
+ got.is_some_and(|request| request_rule_failure(rule, request).is_none())
+ }
Rule::Fresh {
format,
max_past_seconds,
@@ -134,6 +138,19 @@ pub struct Difference {
pub because: Option,
}
+/// Returns why a request fails a rule over the whole request, or nothing if it passes.
+fn request_rule_failure(rule: &Rule, request: &Value) -> Option {
+ match rule {
+ Rule::BlobBatch { subrequests } => {
+ crate::request_rules::check_blob_batch(request, subrequests).err()
+ }
+ Rule::BodyChecksum { header, algorithm } => {
+ crate::request_rules::check_body_checksum(request, header, algorithm).err()
+ }
+ _ => None,
+ }
+}
+
pub fn check_assertions(checks: &[Check], value: &Value, now: SystemTime) -> Vec {
let mut differences = Vec::new();
for check in checks {
@@ -142,11 +159,18 @@ pub fn check_assertions(checks: &[Check], value: &Value, now: SystemTime) -> Vec
continue;
}
if !rule_matches_value(&check.rule, got, now) {
+ // A rule over the whole request reports the request's own failure, not the request.
+ let request_failure =
+ got.and_then(|request| request_rule_failure(&check.rule, request));
differences.push(Difference {
at: check.at.clone(),
expected: check.rule.clone(),
- got: got.cloned(),
- because: check.because.clone(),
+ got: if request_failure.is_some() {
+ None
+ } else {
+ got.cloned()
+ },
+ because: request_failure.or_else(|| check.because.clone()),
});
}
}
diff --git a/src/lib.rs b/src/lib.rs
index 3e05686..56daf6a 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -2,6 +2,7 @@
mod checks;
mod http_transport;
mod request;
+mod request_rules;
pub mod expected_unsupported;
pub mod model;
diff --git a/src/model.rs b/src/model.rs
index 26bd0ca..5694e9f 100644
--- a/src/model.rs
+++ b/src/model.rs
@@ -11,6 +11,11 @@ use std::collections::{BTreeMap, BTreeSet};
#[serde(deny_unknown_fields)]
pub struct Suite {
pub version: u32,
+
+ /// Each case's purpose by its ID, so that a reader can survey a suite before its rules. A
+ /// generated suite has one; when present, it must name every case with its purpose.
+ #[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
+ pub index: BTreeMap,
pub profiles: BTreeMap,
pub cases: Vec,
}
@@ -77,6 +82,11 @@ pub struct Case {
#[serde(default, skip_serializing_if = "Origin::is_observed")]
pub origin: Origin,
+ /// For a case whose responses are not observed, the recorded case whose responses it
+ /// edits, so that a reader can tell what a service sent from what was written by hand.
+ #[serde(default, skip_serializing_if = "Option::is_none")]
+ pub derived_from: Option,
+
/// The operation input passed unchanged to the adapter.
pub call: Value,
@@ -248,6 +258,34 @@ pub enum Rule {
Xml {
value: String,
},
+
+ /// An Azure Blob Batch request with these subrequests, checked at the request's root. See
+ /// `request_rules::check_blob_batch` for what it requires.
+ BlobBatch {
+ subrequests: Vec,
+ },
+
+ /// A header that holds the checksum of the request body, checked at the request's root.
+ BodyChecksum {
+ header: String,
+ algorithm: ChecksumAlgorithm,
+ },
+}
+
+/// A subrequest of an Azure Blob Batch, with its path decoded.
+#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
+#[serde(deny_unknown_fields)]
+pub struct BatchSubrequest {
+ pub method: String,
+ pub path: String,
+}
+
+#[derive(Clone, Debug, Deserialize, Serialize)]
+#[serde(rename_all = "snake_case")]
+pub enum ChecksumAlgorithm {
+ Crc32,
+ Crc32c,
+ Crc64nvme,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
@@ -296,6 +334,14 @@ fn validate_checks(checks: &[Check]) -> Result<()> {
normalize_xml(value)?;
}
Rule::OneOf { values } if values.is_empty() => return Err("empty one_of".into()),
+ Rule::BlobBatch { subrequests } if subrequests.is_empty() || !check.at.is_empty() => {
+ return Err("a blob batch names its subrequests, at the request's root".into());
+ }
+ Rule::BodyChecksum { header, .. }
+ if !is_valid_http_header_name(header) || !check.at.is_empty() =>
+ {
+ return Err("a body checksum names its header, at the request's root".into());
+ }
_ => {}
}
}
@@ -315,6 +361,14 @@ impl Suite {
read_and_validate().map_err(|error| format!("{}: {error}", path.display()).into())
}
+ /// Returns each case's purpose by its ID, the suite's index.
+ pub fn case_index(&self) -> BTreeMap {
+ self.cases
+ .iter()
+ .map(|case| (case.id.clone(), case.purpose.clone()))
+ .collect()
+ }
+
pub fn validate(&self) -> Result<()> {
if self.version != 1 || self.cases.is_empty() {
return Err("expected version 1 and nonempty cases".into());
@@ -329,6 +383,9 @@ impl Suite {
compile_full_match_regex(pattern)?;
}
}
+ if !self.index.is_empty() && self.index != self.case_index() {
+ return Err("the index must name every case with its purpose".into());
+ }
for case in &self.cases {
if !case.call.is_object() {
return Err(format!("{}: call must be an object", case.id).into());
diff --git a/src/request_rules.rs b/src/request_rules.rs
new file mode 100644
index 0000000..0ce1329
--- /dev/null
+++ b/src/request_rules.rs
@@ -0,0 +1,330 @@
+//! Rules over a whole request that a pattern cannot state well: an Azure Blob Batch body, and a
+//! checksum header that must hold the checksum of the body the client sent.
+//!
+//! Each returns why the request fails, for the report.
+use crate::model::{BatchSubrequest, ChecksumAlgorithm};
+use base64::{Engine, engine::general_purpose::STANDARD};
+use serde_json::Value;
+use std::collections::BTreeSet;
+
+fn request_header<'a>(request: &'a Value, name: &str) -> Option<&'a str> {
+ request["headers"][name].as_str()
+}
+
+fn request_body(request: &Value) -> Result, String> {
+ let encoded = request["body_base64"]
+ .as_str()
+ .ok_or("the request has no body")?;
+ STANDARD
+ .decode(encoded)
+ .map_err(|_| "the request body is not base64".to_owned())
+}
+
+/// Returns a header's value from lines of `Name: value`, matching the name without case.
+fn header_in<'a>(lines: &[&'a str], name: &str) -> Option<&'a str> {
+ lines.iter().find_map(|line| {
+ let (line_name, value) = line.split_once(':')?;
+ line_name
+ .trim()
+ .eq_ignore_ascii_case(name)
+ .then(|| value.trim())
+ })
+}
+
+/// Returns the boundary that a `multipart/mixed` content type names.
+fn multipart_boundary(content_type: &str) -> Option<&str> {
+ let (media_type, parameters) = content_type.split_once(';')?;
+ if !media_type.trim().eq_ignore_ascii_case("multipart/mixed") {
+ return None;
+ }
+ parameters.split(';').find_map(|parameter| {
+ let (name, value) = parameter.split_once('=')?;
+ name.trim()
+ .eq_ignore_ascii_case("boundary")
+ .then(|| value.trim().trim_matches('"'))
+ })
+}
+
+/// Checks an Azure Blob Batch request: a `multipart/mixed` body whose boundary the content type
+/// names, with lines ending in CRLF and a closing boundary. Each part is `application/http` in
+/// `binary` transfer encoding with a Content-ID of its own, and holds one subrequest without a
+/// body, which names `x-ms-date` and `Authorization`. The subrequests are the expected ones, each
+/// once, in any order, with a path or an absolute URL whose path decodes to the expected one.
+pub(crate) fn check_blob_batch(
+ request: &Value,
+ expected: &[BatchSubrequest],
+) -> Result<(), String> {
+ let content_type = request_header(request, "content-type").ok_or("no Content-Type")?;
+ let boundary = multipart_boundary(content_type).ok_or_else(|| {
+ format!("Content-Type {content_type:?} names no multipart/mixed boundary")
+ })?;
+ let body = String::from_utf8(request_body(request)?).map_err(|_| "the body is not UTF-8")?;
+ if body.replace("\r\n", "").contains('\n') {
+ return Err("a line of the body ends in LF without CR".into());
+ }
+
+ let closing = format!("--{boundary}--");
+ let without_closing = body
+ .strip_suffix("\r\n")
+ .unwrap_or(&body)
+ .strip_suffix(&closing)
+ .ok_or_else(|| format!("the body does not end with {closing}"))?;
+ let delimiter = format!("--{boundary}\r\n");
+ let parts: Vec<&str> = without_closing
+ .strip_prefix(&delimiter)
+ .ok_or_else(|| format!("the body does not start with --{boundary}"))?
+ .split(&format!("\r\n{delimiter}"))
+ .map(|part| part.strip_suffix("\r\n").unwrap_or(part))
+ .collect();
+ if parts.len() != expected.len() {
+ return Err(format!(
+ "{} parts, where {} were expected",
+ parts.len(),
+ expected.len()
+ ));
+ }
+
+ let mut content_ids = BTreeSet::new();
+ let mut sent = Vec::new();
+ for (index, part) in parts.iter().enumerate() {
+ let (part_headers, subrequest) = part
+ .split_once("\r\n\r\n")
+ .ok_or_else(|| format!("part {index} has no blank line after its headers"))?;
+ let part_headers: Vec<&str> = part_headers.split("\r\n").collect();
+ if !header_in(&part_headers, "content-type")
+ .is_some_and(|value| value.eq_ignore_ascii_case("application/http"))
+ {
+ return Err(format!(
+ "part {index} is not Content-Type: application/http"
+ ));
+ }
+ if !header_in(&part_headers, "content-transfer-encoding")
+ .is_some_and(|value| value.eq_ignore_ascii_case("binary"))
+ {
+ return Err(format!(
+ "part {index} is not Content-Transfer-Encoding: binary"
+ ));
+ }
+ let content_id = header_in(&part_headers, "content-id")
+ .ok_or_else(|| format!("part {index} has no Content-ID"))?;
+ if !content_ids.insert(content_id.to_owned()) {
+ return Err(format!("Content-ID {content_id} appears twice"));
+ }
+
+ let subrequest = subrequest.strip_suffix("\r\n").unwrap_or(subrequest);
+ let (subrequest_head, subrequest_body) = subrequest
+ .split_once("\r\n\r\n")
+ .unwrap_or((subrequest, ""));
+ if !subrequest_body.is_empty() {
+ return Err(format!("the subrequest of part {index} has a body"));
+ }
+ let mut lines = subrequest_head.split("\r\n");
+ let request_line = lines.next().unwrap_or("");
+ let headers: Vec<&str> = lines.collect();
+ let mut words = request_line.split(' ');
+ let (Some(method), Some(target), Some("HTTP/1.1"), None) =
+ (words.next(), words.next(), words.next(), words.next())
+ else {
+ return Err(format!(
+ "part {index} starts with {request_line:?}, not METHOD TARGET HTTP/1.1"
+ ));
+ };
+ for required in ["x-ms-date", "authorization"] {
+ if header_in(&headers, required).is_none() {
+ return Err(format!("the subrequest of part {index} has no {required}"));
+ }
+ }
+ if header_in(&headers, "content-length").is_some_and(|length| length != "0") {
+ return Err(format!("the subrequest of part {index} declares a body"));
+ }
+ let path = target
+ .strip_prefix("https://")
+ .or_else(|| target.strip_prefix("http://"))
+ .map(|rest| rest.find('/').map_or("/", |start| &rest[start..]))
+ .unwrap_or(target);
+ let path = path.split('?').next().unwrap_or(path);
+ let decoded = percent_encoding::percent_decode_str(path)
+ .decode_utf8()
+ .map_err(|_| format!("the path of part {index} does not decode to UTF-8"))?;
+ sent.push((method.to_owned(), decoded.into_owned()));
+ }
+
+ for subrequest in expected {
+ let position = sent
+ .iter()
+ .position(|(method, path)| *method == subrequest.method && *path == subrequest.path)
+ .ok_or_else(|| format!("no subrequest {} {}", subrequest.method, subrequest.path))?;
+ sent.remove(position);
+ }
+ Ok(())
+}
+
+/// Checks that a header holds the checksum of the request body, base64-encoded big-endian.
+pub(crate) fn check_body_checksum(
+ request: &Value,
+ header: &str,
+ algorithm: &ChecksumAlgorithm,
+) -> Result<(), String> {
+ let body = request_body(request)?;
+ let expected = match algorithm {
+ ChecksumAlgorithm::Crc32 => STANDARD.encode(crc32(&body, 0xEDB8_8320).to_be_bytes()),
+ ChecksumAlgorithm::Crc32c => STANDARD.encode(crc32(&body, 0x82F6_3B78).to_be_bytes()),
+ ChecksumAlgorithm::Crc64nvme => STANDARD.encode(crc64nvme(&body).to_be_bytes()),
+ };
+ match request_header(request, header) {
+ Some(value) if value == expected => Ok(()),
+ Some(value) => Err(format!(
+ "{header} is {value}, and the body's checksum is {expected}"
+ )),
+ None => Err(format!("no {header}; the body's checksum is {expected}")),
+ }
+}
+
+/// A reflected CRC-32 with the given reversed polynomial: ISO-HDLC or Castagnoli.
+fn crc32(bytes: &[u8], reversed_polynomial: u32) -> u32 {
+ let mut crc = u32::MAX;
+ for byte in bytes {
+ crc ^= u32::from(*byte);
+ for _ in 0..8 {
+ crc = if crc & 1 == 1 {
+ (crc >> 1) ^ reversed_polynomial
+ } else {
+ crc >> 1
+ };
+ }
+ }
+ !crc
+}
+
+/// CRC-64/NVME, the CRC64NVME of S3.
+fn crc64nvme(bytes: &[u8]) -> u64 {
+ let mut crc = u64::MAX;
+ for byte in bytes {
+ crc ^= u64::from(*byte);
+ for _ in 0..8 {
+ crc = if crc & 1 == 1 {
+ (crc >> 1) ^ 0x9A6C_9329_AC4B_C9B5
+ } else {
+ crc >> 1
+ };
+ }
+ }
+ !crc
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use serde_json::json;
+
+ #[test]
+ fn checksums_give_the_standard_check_values() {
+ assert_eq!(crc32(b"123456789", 0xEDB8_8320), 0xCBF4_3926);
+ assert_eq!(crc32(b"123456789", 0x82F6_3B78), 0xE306_9283);
+ assert_eq!(crc64nvme(b"123456789"), 0xAE8B_1486_0A79_9888);
+ }
+
+ fn batch_request(body: &str) -> Value {
+ json!({
+ "headers": {"content-type": "multipart/mixed; boundary=batch_x"},
+ "body_base64": STANDARD.encode(body),
+ })
+ }
+
+ fn deletion(content_id: u32, path: &str) -> String {
+ format!(
+ "--batch_x\r\nContent-Type: application/http\r\nContent-Transfer-Encoding: binary\r\n\
+ Content-ID: {content_id}\r\n\r\nDELETE {path} HTTP/1.1\r\nx-ms-date: Mon, 01 Jan 2024 \
+ 00:00:00 GMT\r\nAuthorization: Bearer t\r\nContent-Length: 0\r\n\r\n"
+ )
+ }
+
+ #[test]
+ fn a_blob_batch_needs_every_subrequest_in_a_well_formed_part() {
+ let expected = [
+ BatchSubrequest {
+ method: "DELETE".into(),
+ path: "/c/a b".into(),
+ },
+ BatchSubrequest {
+ method: "DELETE".into(),
+ path: "/c/b".into(),
+ },
+ ];
+ let body = format!(
+ "{}{}--batch_x--\r\n",
+ deletion(0, "/c/a%20b"),
+ deletion(1, "https://h/c/b")
+ );
+ assert_eq!(check_blob_batch(&batch_request(&body), &expected), Ok(()));
+
+ // In another order, which Content-IDs still tell apart.
+ let reordered = format!(
+ "{}{}--batch_x--",
+ deletion(1, "/c/b"),
+ deletion(0, "/c/a%20b")
+ );
+ assert_eq!(
+ check_blob_batch(&batch_request(&reordered), &expected),
+ Ok(())
+ );
+
+ for broken in [
+ format!("{}{}", deletion(0, "/c/a%20b"), deletion(1, "/c/b")),
+ format!(
+ "{}{}--batch_x--",
+ deletion(0, "/c/a%20b"),
+ deletion(0, "/c/b")
+ ),
+ format!(
+ "{}{}--batch_x--",
+ deletion(0, "/c/a%20b"),
+ deletion(1, "/c/other")
+ ),
+ format!(
+ "{}{}--batch_x--",
+ deletion(0, "/c/a%20b"),
+ deletion(1, "/c/b")
+ )
+ .replace("\r\n", "\n"),
+ format!(
+ "{}{}--batch_x--",
+ deletion(0, "/c/a%20b"),
+ deletion(1, "/c/b")
+ )
+ .replace("x-ms-date", "x-ms-other"),
+ format!(
+ "{}{}--batch_x--",
+ deletion(0, "/c/a%20b"),
+ deletion(1, "/c/b")
+ )
+ .replace("Content-ID: 1\r\n", ""),
+ ] {
+ assert!(
+ check_blob_batch(&batch_request(&broken), &expected).is_err(),
+ "{broken:?}"
+ );
+ }
+ }
+
+ #[test]
+ fn a_body_checksum_must_be_the_checksum_of_the_body() {
+ let request = |value: &str| {
+ json!({
+ "headers": {"x-amz-checksum-crc64nvme": value},
+ "body_base64": STANDARD.encode("123456789"),
+ })
+ };
+ let right = STANDARD.encode(0xAE8B_1486_0A79_9888_u64.to_be_bytes());
+ let reversed = STANDARD.encode(0xAE8B_1486_0A79_9888_u64.to_le_bytes());
+ let algorithm = ChecksumAlgorithm::Crc64nvme;
+ assert_eq!(
+ check_body_checksum(&request(&right), "x-amz-checksum-crc64nvme", &algorithm),
+ Ok(())
+ );
+ assert!(
+ check_body_checksum(&request(&reversed), "x-amz-checksum-crc64nvme", &algorithm)
+ .is_err()
+ );
+ }
+}
diff --git a/tests/grading.rs b/tests/grading.rs
index cb3514c..4fb4ff8 100644
--- a/tests/grading.rs
+++ b/tests/grading.rs
@@ -35,7 +35,12 @@ fn create_get_request() -> Value {
#[test]
fn corpus_is_strict_and_valid() {
- for file in ["operations.json", "vectors.json", "live.json"] {
+ for file in [
+ "operations.json",
+ "management.json",
+ "vectors.json",
+ "live.json",
+ ] {
Suite::load(format!("{}/cases/{file}", env!("CARGO_MANIFEST_DIR"))).unwrap();
}
let mut suite_json = serde_json::to_value(load_test_suite()).unwrap();
@@ -138,6 +143,20 @@ fn duplicate_ids_and_empty_assertions_are_rejected() {
assert!(suite.validate().is_err());
}
+#[test]
+fn an_index_must_name_every_case_with_its_purpose() {
+ let mut suite = load_test_suite();
+ suite.index = suite.case_index();
+ assert!(suite.validate().is_ok());
+
+ suite.cases[0].purpose.push_str(" again");
+ assert!(suite.validate().is_err());
+
+ suite.index = suite.case_index();
+ suite.index.remove(&suite.cases[0].id);
+ assert!(suite.validate().is_err());
+}
+
#[test]
fn no_request_cannot_pass() {
let session = create_get_session();